14
14
15
15
#include <windows.h>
16
16
#include <tchar.h>
17
+ #include <psapi.h>
17
18
18
19
#include "WinSpy.h"
19
20
#include "resource.h"
20
21
22
+ #include <tlhelp32.h>
23
+
24
+
21
25
typedef BOOL (WINAPI * EnumProcessModulesProc )(HANDLE , HMODULE * , DWORD , LPDWORD );
22
26
typedef DWORD (WINAPI * GetModuleBaseNameProc )(HANDLE , HMODULE , LPTSTR , DWORD );
23
27
typedef DWORD (WINAPI * GetModuleFileNameExProc )(HANDLE , HMODULE , LPTSTR , DWORD );
24
28
29
+ BOOL GetProcessNameByPid (DWORD dwProcessId , TCHAR szName [], DWORD nNameSize , TCHAR szPath [], DWORD nPathSize )
30
+ {
31
+ HANDLE h = CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS , 0 );
32
+ PROCESSENTRY32 pe = { sizeof (pe ) };
33
+ BOOL fFound = FALSE;
34
+
35
+ szPath [0 ] = '\0' ;
36
+ szName [0 ] = '\0' ;
37
+
38
+ if (Process32First (h , & pe ))
39
+ {
40
+ do
41
+ {
42
+ if (pe .th32ProcessID == dwProcessId )
43
+ {
44
+ if (szName )
45
+ {
46
+ lstrcpyn (szName , pe .szExeFile , nNameSize );
47
+ }
48
+
49
+ if (szPath )
50
+ {
51
+ //OpenProcess(
52
+ lstrcpyn (szPath , pe .szExeFile , nPathSize );
53
+ }
54
+
55
+ fFound = TRUE;
56
+ break ;
57
+ }
58
+ }
59
+ while (Process32Next (h , & pe ));
60
+ }
61
+
62
+ CloseHandle (h );
63
+
64
+ return fFound ;
65
+ }
66
+
67
+
25
68
//
26
69
// This uses PSAPI.DLL, which is only available under NT/2000/XP I think,
27
70
// so we dynamically load this library, so that we can still run under 9x.
@@ -32,7 +75,7 @@ typedef DWORD (WINAPI * GetModuleFileNameExProc)(HANDLE, HMODULE, LPTSTR, DWORD)
32
75
// szPath [out]
33
76
// nPathSize [in]
34
77
//
35
- BOOL GetProcessNameByPid (DWORD dwProcessId , TCHAR szName [], DWORD nNameSize , TCHAR szPath [], DWORD nPathSize )
78
+ BOOL GetProcessNameByPid0 (DWORD dwProcessId , TCHAR szName [], DWORD nNameSize , TCHAR szPath [], DWORD nPathSize )
36
79
{
37
80
HMODULE hPSAPI ;
38
81
HANDLE hProcess ;
0 commit comments