[英]C++ Sending a simple signal in Windows
Windows上的函數kill()是否等效?
int kill(pid_t pid, int sig);
如果沒有,是否可以根據其PID測試進程是否正在運行?
謝謝
Windows沒有unix意義上的信號。
您可以使用OpenProcess
檢查進程是否存在 - 如果成功或因訪問錯誤而失敗,則該進程存在。
bool processExists(DWORD ProcessID) {
HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, ProcessID);
if (hProcess != NULL) {
CloseHandle(hProcess);
return true;
}
// If the error code is access denied, the process exists but we don't have access to open a handle to it.
return GetLastError() == ERROR_ACCESS_DENIED;
}
Windows中沒有信號。 如果要進行真正的查殺,則使用TerminateProcess()。 您需要一個進程句柄,從OpenProcess()獲取。 您需要請求PROCESS_TERMINATE訪問權限。 CloseHandle()關閉句柄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.