Thomas Rogg
2004-02-11 15:33:49 UTC
Hello list,
(Note sure if its the write list, but I'll post it anyways.)
I need to get a list of all file names (with paths) of all running
applications I have access to (other modules, for example .DLLs, are not
needed). The following is what I coded together. My problem is that my code
uses the PSAPI API (EnumProcessModules, GetModuleFileNameEx) and PSAPI
requires Windows NT. As I need my program to run under Windows 9x, too, I am
searching for a way to do the same thing without PSAPI. Anybody have an
idea?
Thank you,
-- Thomas
-----
Code begins here (C)
-----
PROCESSENTRY32 processInfo;
HANDLE hSnapshot, hProcess;
HMODULE hModules[MAX_MODULES];
DWORD size;
char fileName[MAX_PATH + 1];
int i;
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSnapshot == INVALID_HANDLE_VALUE)
return;
processInfo.dwSize = sizeof(PROCESSENTRY32);
while(Process32Next(hSnapshot, &processInfo)!=FALSE)
{
hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE,
processInfo.th32ProcessID);
if(!hProcess)
continue;
if(EnumProcessModules(hProcess, hModules, MAX_MODULES, &size) && size !=
0)
{
fileName[MAX_PATH] = '\0';
size /= sizeof(HMODULE);
for(i = 0; i < size; i++)
if(GetModuleFileNameEx(hProcess, hModules[i], fileName, MAX_PATH) != 0)
{
FILE *f; // write filename into file
f = fopen("C:\\processlog.txt", "a");
fprintf(f, "%s\n", fileName);
fclose(f);
}
}
CloseHandle(hProcess);
}
CloseHandle(hSnapshot);
-----
Code ends here
-----
-----
Example output (to C:\processlog.txt) begins here
-----
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\msvcrt.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\System32\atwtusb.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\SHELL32.dll
C:\Program Files\Java\j2re1.4.2_03\bin\jusched.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\WININET.dll
C:\WINDOWS\system32\CRYPT32.dll
C:\WINDOWS\system32\msvcrt.dll
C:\Program Files\AVPersonal\AVGNT.EXE
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\VERSION.dll
C:\WINDOWS\system32\LZ32.dll
C:\WINDOWS\System32\MFC42.DLL
C:\WINDOWS\system32\MSVCRT.dll
C:\WINDOWS\system32\GDI32.dll
C:\Program Files\Spamihilator\spamihilator.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\System32\WINMM.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\System32\MSVCR70.dll
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Trillian\trillian.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\System32\WSOCK32.dll
C:\WINDOWS\System32\WS2_32.dll
C:\WINDOWS\system32\msvcrt.dll
C:\WINDOWS\System32\WS2HELP.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\USER32.DLL
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\comdlg32.dll
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Windows Media Player\wmplayer.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\System32\wmp.dll
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Messenger\msmsgs.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\ole32.dll
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\Program Files\Mozilla Firefox\xpcom.dll
C:\Program Files\Mozilla Firefox\nspr4.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\System32\WSOCK32.dll
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe
-----
Example output (to C:\processlog.txt) ends here
-----
(Note sure if its the write list, but I'll post it anyways.)
I need to get a list of all file names (with paths) of all running
applications I have access to (other modules, for example .DLLs, are not
needed). The following is what I coded together. My problem is that my code
uses the PSAPI API (EnumProcessModules, GetModuleFileNameEx) and PSAPI
requires Windows NT. As I need my program to run under Windows 9x, too, I am
searching for a way to do the same thing without PSAPI. Anybody have an
idea?
Thank you,
-- Thomas
-----
Code begins here (C)
-----
PROCESSENTRY32 processInfo;
HANDLE hSnapshot, hProcess;
HMODULE hModules[MAX_MODULES];
DWORD size;
char fileName[MAX_PATH + 1];
int i;
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSnapshot == INVALID_HANDLE_VALUE)
return;
processInfo.dwSize = sizeof(PROCESSENTRY32);
while(Process32Next(hSnapshot, &processInfo)!=FALSE)
{
hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE,
processInfo.th32ProcessID);
if(!hProcess)
continue;
if(EnumProcessModules(hProcess, hModules, MAX_MODULES, &size) && size !=
0)
{
fileName[MAX_PATH] = '\0';
size /= sizeof(HMODULE);
for(i = 0; i < size; i++)
if(GetModuleFileNameEx(hProcess, hModules[i], fileName, MAX_PATH) != 0)
{
FILE *f; // write filename into file
f = fopen("C:\\processlog.txt", "a");
fprintf(f, "%s\n", fileName);
fclose(f);
}
}
CloseHandle(hProcess);
}
CloseHandle(hSnapshot);
-----
Code ends here
-----
-----
Example output (to C:\processlog.txt) begins here
-----
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\msvcrt.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\System32\atwtusb.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\SHELL32.dll
C:\Program Files\Java\j2re1.4.2_03\bin\jusched.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\WININET.dll
C:\WINDOWS\system32\CRYPT32.dll
C:\WINDOWS\system32\msvcrt.dll
C:\Program Files\AVPersonal\AVGNT.EXE
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\VERSION.dll
C:\WINDOWS\system32\LZ32.dll
C:\WINDOWS\System32\MFC42.DLL
C:\WINDOWS\system32\MSVCRT.dll
C:\WINDOWS\system32\GDI32.dll
C:\Program Files\Spamihilator\spamihilator.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\System32\WINMM.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\System32\MSVCR70.dll
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe
C:\Program Files\Trillian\trillian.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\System32\WSOCK32.dll
C:\WINDOWS\System32\WS2_32.dll
C:\WINDOWS\system32\msvcrt.dll
C:\WINDOWS\System32\WS2HELP.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Trillian\trillian.exe
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\USER32.DLL
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\comdlg32.dll
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Kazaa Lite K++\KazaaLite.kpp
C:\Program Files\Windows Media Player\wmplayer.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\System32\wmp.dll
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Windows Media Player\wmplayer.exe
C:\Program Files\Messenger\msmsgs.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\ole32.dll
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Messenger\msmsgs.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\system32\kernel32.dll
C:\Program Files\Mozilla Firefox\xpcom.dll
C:\Program Files\Mozilla Firefox\nspr4.dll
C:\WINDOWS\system32\ADVAPI32.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\System32\WSOCK32.dll
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe
-----
Example output (to C:\processlog.txt) ends here
-----