Home » Developing U++ » UppHub » SysInfo - GetProcessName() - bug?
SysInfo - GetProcessName() - bug? [message #35874] |
Fri, 30 March 2012 10:01 |
borbek
Messages: 31 Registered: November 2010 Location: Russia
|
Member |
|
|
The function returns an uninitialized string if OpenProcess or EnumProcessModules return an error.
Perhaps a better way:
String GetProcessName(long processID)
{
WCHAR szProcessName[MAX_PATH];
String r="";
// Get a handle to the process.
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID);
// Get the process name.
if (hProcess != NULL) {
HMODULE hMod;
DWORD cbNeeded;
if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded))
{
GetModuleBaseNameW(hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(WCHAR));
r=FromSystemCharset(WString(szProcessName).ToString());
}
}
CloseHandle(hProcess);
return r;
}
[Updated on: Fri, 30 March 2012 10:06] Report message to a moderator
|
|
|
|
Goto Forum:
Current Time: Fri Sep 20 18:18:00 CEST 2024
Total time taken to generate the page: 0.03045 seconds
|