2013-09-04 2 views
0

Следующий код отлично работает при отображении идентификатора процесса всех процессов (например: notepad.exe), работающих под разными пользователями. Но процесс под нынешним пользователем убит только один. Мне нужно убить все процессы, запущенные под разными пользователями.Как убить Процессы, выполняемые под разными пользователями, используя код C++

#define SAMPLEAPP "notepad.exe" 
void main() 
{ 
    KillProcessByName(SAMPLEAPP); 
    system("pause"); 
} 
void KillProcessByName(const char *filename) 
{ 
    // Taking snapshot of all processes 
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL); 
    //structure to capture each entry in snapshot 
    PROCESSENTRY32 pEntry; 
    pEntry.dwSize = sizeof (pEntry); 
    //capture the first process in the list 
    BOOL hRes = Process32First(hSnapShot, &pEntry); 
    while (hRes) 
    { 
     char tempProcess[PROCESS_SIZE];// = pEntry.szExeFile; 
     wcstombs(tempProcess, pEntry.szExeFile, PROCESS_SIZE); 
     //if process name is equal to the process passed as argument to be killed 
     if (strcmp(tempProcess, filename) == 0) 
     { 
      HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, 
       (DWORD) pEntry.th32ProcessID); 
      std::cout << "Process ID of the Process " << tempProcess << " is : " << pEntry.th32ProcessID; 
      if (hProcess != NULL) 
      { 
       // Kill the process 
       TerminateProcess(hProcess, 9); 
       CloseHandle(hProcess); 
      } 
     } 
     //Capture the next process in process snapshot 
     hRes = Process32Next(hSnapShot, &pEntry); 
    } 
    CloseHandle(hSnapShot); 
} 

Как я могу убить процесс, даже если он принадлежит другому пользователю?

ответ

0

Щелкните правой кнопкой мыши вашу программу и выберите «Запуск от имени администратора».

+0

Я также пробовал «Запуск от имени администратора». Даже тогда Процессы под другими пользователями не будут убиты. – user2745219

+0

Может ли пользовательская учетная запись использовать эти процессы с помощью диспетчера задач? –

+0

Да. Из диспетчера задач я могу завершить процессы других пользователей с параметром «Окончательный процесс». – user2745219

Смежные вопросы