2015-12-16 2 views
-6

Я хочу приостановить skype.exe на C++. Как выглядит код? Я уже пробовал с этим: Can I suspend a process except one thread? Но все еще не могу приостановить процесс.Как приостановить skype.exe C++

+2

Привет и добро пожаловать в переполнение стека! Пожалуйста, покажите, какой код вы пробовали и какова точная ошибка, всякий раз, когда вы отправляете вопросы для отладки справки. Вы пытались, например, переходить к вопросу или искать в справочном сайте Microsoft? Почему это не ответило на ваш вопрос? –

ответ

-1

Это мой код. Skype приостановлен, но после этого я не могу возобновить его снова. Другая проблема заключается в том, что я останавливаю skype по ID, и всегда, когда я снова запускаю skype, идентификатор процесса отличается, и мне нужно редактировать свой код. Как остановить его по имени процесса.

#include <windows.h> 
#include <tlhelp32.h> 

// Pass 0 as the targetProcessId to suspend threads in the current process 
void DoSuspendThread(DWORD targetProcessId, DWORD targetThreadId) 
{ 
    HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); 
    if (h != INVALID_HANDLE_VALUE) 
    { 
     THREADENTRY32 te; 
     te.dwSize = sizeof(te); 
     if (Thread32First(h, &te)) 
     { 
      do 
      { 
       if (te.dwSize >= FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) + sizeof(te.th32OwnerProcessID)) 
       { 
        // Suspend all threads EXCEPT the one we want to keep running 
        if (te.th32ThreadID != targetThreadId && te.th32OwnerProcessID == targetProcessId) 
        { 
         HANDLE thread = ::OpenThread(THREAD_ALL_ACCESS, FALSE, te.th32ThreadID); 
         if (thread != NULL) 
         { 
          SuspendThread(thread); 
          CloseHandle(thread); 
         } 
        } 
       } 
       te.dwSize = sizeof(te); 
      } while (Thread32Next(h, &te)); 
     } 
     CloseHandle(h); 
    } 
} 

void main() 
{ 
    DoSuspendThread(2512, 0); // this is the dword values that I used to suspend skype.exe but just in this case 
    system("pause"); 
} 
+1

Этот вопрос должен идти в вашем вопросе, вместо ответа на него – deviantfan

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