|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
Из темы http://www.sql.ru/forum/actualthread.aspx?tid=667199 , я понял как получить список запущенных процессов. Ещё бы узнать полный путь, т.е. откуда были запущенны эти процессы. Зарание спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2011, 18:05 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
В структуре tagPROCESSENTRY32 есть поле char szExeFile[MAX_PATH];, которое содержит путь к исполняемому модулю Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2011, 18:14 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
> Автор: Игорь Горбонос > В структуре tagPROCESSENTRY32 есть поле char szExeFile[MAX_PATH];, которое содержит путь к исполняемому модулю Был не совсем прав MSDNszExeFile The name of the executable file for the process. To retrieve the full path to the executable file, call the Module32First function and check the szExePath member of the MODULEENTRY32 structure that is returned. However, if the calling process is a 32-bit process, you must call the QueryFullProcessImageName function to retrieve the full path of the executable file for a 64-bit process. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2011, 18:20 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
Игорь Горбонос, Спасибо за ответ, не могли бы Вы уточнить как это использовать, например здесь (комменты оставляю): * CreateToolhelp32Snapshot - Takes a snapshot of the processes and the heaps, modules, and threads. HSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * структура для Process32First, Process32Next *typedef struct tagPROCESSENTRY32 { * DWORD dwSize; * DWORD cntUsage; * DWORD th32ProcessID; * DWORD th32DefaultHeapID; * DWORD th32ModuleID; * DWORD cntThreads; * DWORD th32ParentProcessID; * LONG pcPriClassBase; * DWORD dwFlags; * char szExeFile[MAX_PATH]; *} PROCESSENTRY32; cBuff=SPACE(400) Process32First(HSnapshot,@cBuff) DIMENSION arr[1,3] arr[1,1] = DWORD_NUM(SUBSTR(cBuff,9,4)) && PID процесса (10-чное число) arr[1,2] = DecHex(arr[1,1]) && PID процесса (16-чное число) arr[1,3] = '' && имя EXE-модуля lpString = SUBSTR(cBuff,37,100) FOR i=1 TO Len(lpString) IF ASC(SUBSTR(lpString,i,1))#0 arr[1,3] = arr[1,3] +SUBSTR(lpString,i,1) ELSE EXIT ENDIF NEXT ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2011, 18:33 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
Копай в сторону CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2011, 06:55 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
На Си это так выглядит: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2011, 06:59 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
Здесь есть пример на VFP как получить путь к исполняемому модулю. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2011, 11:02 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
Так пойдет? LOCAL m.loWMIService, m.loItems m.loWMIService = GETOBJECT("winmgmts:\\.\root\cimv2") m.loItems = m.loWMIService.ExecQuery("Select * From Win32_Process") FOR EACH loItem IN loItems ? loItem.Name ? loItem.ExecutablePath ENDFOR ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2011, 15:53 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
Спасибо, за подсказки. Года два назад, это я делал на Дельфи. Начну с ссылки Игоря. Если получится, обязательно напишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2011, 21:44 |
|
список процессов с указанием полного пути
|
|||
---|---|---|---|
#18+
Спасибо _vit-у. Здесь на http://forum.foxclub.ru/read.php?29,495520 он полностью ответил. Вот его код: clear #Define PROCESS_VM_READ 16 #Define PROCESS_QUERY_INFORMATION 1024 #Define BUF_SIZE 4096 #Define MAX_FILENAME_LEN 255 Declare Integer EnumProcesses In psapi String @ lpidProcess, Integer cb, Integer @ cbNeeded Declare Integer OpenProcess In kernel32 Integer dwDesiredAccessas, Integer bInheritHandle, Integer dwProcId Declare Integer OpenProcess In kernel32 Integer dwDesiredAccessas, Integer bInheritHandle, Integer dwProcId Declare Integer GetModuleFileNameEx In psapi Integer hProcess, Integer hModule, String ModuleName, Integer nSize Declare Integer CloseHandle In kernel32 Integer lhProcess Local lcProcListBuf, i, lnBytesReturned, lnPID, lhProcess, lcProcFilenameBuf lcProcListBuf = Replicate(Chr(0), BUF_SIZE) lnBytesReturned = 0 If EnumProcesses(@lcProcListBuf, BUF_SIZE, @lnBytesReturned) != 0 For i = 1 To lnBytesReturned / 4 lnPID = BUF2DWORD(Substr(lcProcListBuf, 4 * (i - 1) + 1, 4)) lcProcFilenameBuf = padr("<Unknown>", MAX_FILENAME_LEN, Chr(0)) lnFileNameLen = 9 lhProcess = OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, 0, lnPID) If lhProcess <> 0 lnFileNameLen = GetModuleFileNameEx(lhProcess, 0, @lcProcFilenameBuf, MAX_FILENAME_LEN) = CloseHandle(lhProcess) Endif ? Left(lcProcFilenameBuf, lnFileNameLen) Endfor Endif Function BUF2DWORD Lparameters tcBuf Return Asc(Substr(tcBuf, 1,1)) + ; ASC(Substr(tcBuf, 2,1)) * 256 + ; ASC(Substr(tcBuf, 3,1)) * 65536 + ; ASC(Substr(tcBuf, 4,1)) * 16777216 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2011, 22:27 |
|
|
start [/forum/topic.php?fid=41&fpage=80&tid=1584575]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
189ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 316ms |
total: | 602ms |
0 / 0 |