Что нового

Поиск запущенного окна/процесса по расположению

rybik

Новичок
Сообщения
84
Репутация
0
Необходимо найти правильный процесс или окно оринтируясь на расположение файла. Например:

C:\Program Files (x86)\folder1\1.exe
C:\Program Files (x86)\folder2\1.exe
C:\Program Files (x86)\folder3\1.exe
C:\Program Files (x86)\folder4\1.exe
C:\Program Files (x86)\folder5\1.exe

То есть название процесса будет одинаковым, 1.exe и поэтому нужно определить из какого места он запущен.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Код:
#include <WinAPIProc.au3>
#include <ProcessConstants.au3>
#include <Array.au3>

Local $aProcList = ProcessList("1.exe")
If @error Then Exit -1

_ArrayColInsert($aProcList, 2)
For $i = 1 To $aProcList[0][0]
	$aProcList[0][1] = _WinAPI_OpenProcess(BitOR($PROCESS_QUERY_LIMITED_INFORMATION, $PROCESS_VM_READ), 0, $aProcList[$i][1])
	$aProcList[$i][2] = _WinAPI_GetModuleFileNameEx($aProcList[0][1])
	_WinAPI_CloseHandle($aProcList[0][1])
Next
$aProcList[0][1] = Null
_ArrayDisplay($aProcList)
 
Автор
R

rybik

Новичок
Сообщения
84
Репутация
0
Tempo сказал(а):
Код:
#include <WinAPIProc.au3>
#include <ProcessConstants.au3>
#include <Array.au3>

Local $aProcList = ProcessList("1.exe")
If @error Then Exit -1

_ArrayColInsert($aProcList, 2)
For $i = 1 To $aProcList[0][0]
	$aProcList[0][1] = _WinAPI_OpenProcess(BitOR($PROCESS_QUERY_LIMITED_INFORMATION, $PROCESS_VM_READ), 0, $aProcList[$i][1])
	$aProcList[$i][2] = _WinAPI_GetModuleFileNameEx($aProcList[0][1])
	_WinAPI_CloseHandle($aProcList[0][1])
Next
$aProcList[0][1] = Null
_ArrayDisplay($aProcList)

Все работает, единственное надо добавить #RequireAdmin. Если файл был запущен от администратора.
 
Верх