Что нового

[Процессы] Получение списка подключенных модулей к процессу

sonic1000

Новичок
Сообщения
2
Репутация
0
Необходимо получение списка ВСЕХ подключенных модулей к процессу. Пробовал использовать функцию _WinAPI_EnumProcessModules из WinAPIEx.au3. На windows 7 все работает отлично, а на ХР нет. После проверки функции нашел
Код:
$PID = ProcessExists('metin2client.exe')
$hProcess = DllCall('kernel32.dll', 'ptr', 'OpenProcess', 'dword', __Iif($__WINVER < 0x0600, 0x00000410, 0x00001010), 'int', 0, 'dword', $PID) ; $hProcess возвращает 0x00000000

Прочитал здесь, что значение 0x00000000 возвращается при доступе к системному процессу, или нет прав доступа. При запуске приложения через ShellExecute() функция _WinAPI_EnumProcessModules срабатывает, но приложение тут же закрывается, т.к. срабатывает внутренняя защита(приложение не может подгрузить свои какие-то модули).
Может подскажете другие способы достижения моей цели?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
Const $MAXIMUM_ALLOWED = 0x02000000
Local $hProc = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $MAXIMUM_ALLOWED, "int", 0, "dword", $processPID)
	If @error Or Not $hProc[0] Then exit msgbox(0,"error",0)
	$hProc = $hProc[0]

попробуй
 
Автор
S

sonic1000

Новичок
Сообщения
2
Репутация
0
Попробовал, также возвращает 0x00000000
Кому интересно, выложил приложение(все вырезано, оставил необходимое для запуска ~17.3 МБ). Поэкспериментируйте...
 
Верх