OpenProcess возвращает разные handle запущенного др. приложения - C#
Формулировка задачи:
привет.
Вопрос такой - хочу получить handle процесса для использования в функциях VirtualAllocEx и WriteProcessMemory
делаю так
при этом каждый раз (при запуске моего кода) хэндл процесса разный, а хэндл окна и id процесса не меняется.
похожий код на с++ работает и хэндл процесса там не изменяется. почему такая разница?
как в шарпе получить хэндл процесса от окна и он будет рабочим, а не прыгать в зависимости от запуска?
MainWindow.GetWindowThreadProcessId(hndlWindow, out idProcess); //получаю id процесса по hndl-у окна HANDLE hProcess = MainWindow.OpenProcess(0x001F0FFF, false, idProcess); //открываем существующий процесс, получаем хендл процесса
//взято с pinvoke.net [DllImport("kernel32.dll")] public static extern IntPtr OpenProcess(uint processAccess, bool bInheritHandle, int processId );
Решение задачи: «OpenProcess возвращает разные handle запущенного др. приложения»
textual
Листинг программы
IntPtr handle = Process.GetCurrentProcess().Handle; IntPtr handle = Process.GetProcessById(pid).Handle;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д