this works fine when elevated on my system, don't bother with that codeproject sample, either manually runas admin or change its manifest to require elevation
BTW you can't elevate an app to admin priv if YOU don't have admin rights on the machine
all 153 processes discovered, some unnamed -
compiled in 32bit
all 153 processes discovered, all named -
compiled in 64bit
oh - and this is a repeat of
EnumProcess() not returning all the expected processes[
^] - don't repeat questions
void MyBeautifulFunction()
{
DWORD processes[1024], cbNeeded;
EnumProcesses(processes, sizeof(processes), &cbNeeded);
DWORD HowManyProcIds = cbNeeded / sizeof(DWORD);
std::vector<CString> AllProcessesBuffer;
for (size_t i = 0; i < HowManyProcIds; i++)
{
CString processBuffer(_T("unknown"));
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processes[i]);
HMODULE ProcMod;
DWORD cb;
if (hProcess != NULL)
{
if (EnumProcessModules(hProcess, &ProcMod, sizeof(ProcMod), &cb))
{
wchar_t szProcessName[MAX_PATH];
GetModuleBaseName(hProcess, ProcMod, szProcessName, sizeof(szProcessName) / sizeof(wchar_t));
processBuffer = szProcessName;
}
else
{
processBuffer.Format(_T("failed EnumProcessModules %d"), GetLastError());
}
CloseHandle(hProcess);
}
else
{
processBuffer.Format(_T("Failed OpenProcess %d"),GetLastError());
}
AllProcessesBuffer.push_back(processBuffer);
}
}