这只是我正在做的事情的片段:
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE) return;
if(!Process32First( hProcessSnap, &pe32))
{
CloseHandle(hProcessSnap); // clean the snapshot object
return;
}
do
{
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
HICON icon = ExtractIcon((HINSTANCE)hProcess, pe32.szExeFile, 0);
}
while(Process32Next(hProcessSnap, &pe32));
为什么它适用于某些程序而不适用于其他程序?它基本上只有那些,记事本和它获取图标的cmd提示符,没有其他程序。