У меня есть функция:
HANDLE snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
...
result=Process32First(snapshot,&pe);
while(result) {
if(!_stricmp(process_name,pe.szExeFile)) {
processes.push_back(pe.th32ProcessID);
}
result=Process32Next(snapshot,&pe);
}
for(dword_vector::iterator i=processes.begin(); i!=processes.end(); ++i){
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE, FALSE, *i);
if(hProcess) {
TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
}
}
Отлично работает на 32-битной платформе, но на 64-битной платформе OpenProcess возвращает Access_denied для некоторых процессов (те же процессы на 32-битных могут быть вычислены нормально). Все процессы, которые я пытаюсь открыть, являются 32-битными.
В чем может быть проблема?