Prince Опубликовано 29 марта, 2017 Поделиться Опубликовано 29 марта, 2017 (изменено) Всем привет, Сижу я такой учусь программировать трейнер на C# по видео урокам и статьям всё шло норм, всё делаю по шагам записал в переменную pID значение process.Id Далее пытаюсь записать новую переменную handle по описанию [DllImport("kernel32.dll")] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); var handle = OpenProcess(0x001F0FFF, false, pID); но она не записывается( уже третий день на этой проблеме завис, Буду очень благодарен если поможете Скрытый текст using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.Runtime.InteropServices; namespace CSharpTrainer { public partial class Form1 : Form { [DllImport("kernel32.dll")] public static extern IntPtr OpenProcess( int dwDesiredAccess, bool bInheritHandle, int dwProcessId ); [DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool CloseHandle(IntPtr hObject); public int pID; public Form1() { InitializeComponent(); GetProcess("Tutorial-i386"); var handle = OpenProcess(0x001F0FFF, false, pID); CloseHandle(handle); } public void GetProcess(string name) { var pList = Process.GetProcesses(); if (pList.Count() != 0) { foreach (var process in pList) { if (process.ProcessName == name) { pID = process.Id; MessageBox.Show("Процесс найден"); return; } } } return; } } } Скрытый текст Изменено 29 марта, 2017 пользователем Xipho Картинки и код у нас принято оборачивать тегом спойлера. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 29 марта, 2017 Поделиться Опубликовано 29 марта, 2017 От админа запускай студию и тогда отладка тоже будет с административными правами. Должно сработать. Ссылка на комментарий Поделиться на другие сайты Поделиться
roma912 Опубликовано 29 марта, 2017 Поделиться Опубликовано 29 марта, 2017 public int pID; ---> public static int pID; Еще возможно не правильно делаешь отладку, просто попробуй поставь msgbox после открытия хэндла процесса. Ну и да, запусти студию от админа. Ссылка на комментарий Поделиться на другие сайты Поделиться
Prince Опубликовано 29 марта, 2017 Автор Поделиться Опубликовано 29 марта, 2017 7 минут назад, Xipho сказал: От админа запускай студию и тогда отладка тоже будет с административными правами. Должно сработать. Спасибо!!! помогло, Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения