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;