Windows掛起程序

2021-10-03 02:59:37 字數 1744 閱讀 1153

window系統並沒有公開提供掛起程序的api,但提供了suspendthread,對乙個程式的掛起,即對該程式所有的執行緒的掛起。

首先引用標頭檔案

#include

'windows標頭檔案

#include

'windows程序與執行緒快照需要

通過建立系統程序與執行緒的快照來停止對應程序的執行緒。

1.根據名稱停止指定程序

#include

#include

#include

#include

bool suspendprocessbyname

(wchar* name)

;//這是用來存放快照程序資訊的乙個結構體。

//建立所有程序的快照

handle hprocesssanp =

createtoolhelp32snapshot0)

;if(hprocesssanp == invalid_handle_value)

//檢查錯誤

process32first

(hprocesssanp,

&pe32)

;//獲取第乙個快照資訊do;

handle hthreadsanp =

createtoolhelp32snapshot

(th32cs_snapthread,

null);

if(hthreadsanp == invalid_handle_value)

//獲取第乙個執行緒快照

thread32first

(hthreadsanp,

&th32);do

else

}while

(thread32next

(hthreadsanp,

&th32));

//下乙個執行緒快照

if(hthreadsanp)

closehandle

(hthreadsanp)

;//關閉執行緒快照}}

while

(process32next

(hprocesssanp,

&pe32));

//下乙個程序快照

closehandle

(hprocesssanp)

;//關閉程序快照

return1;

}

2.根據id掛起指定程序

原理是一樣的

#include

#include

#include

#include

bool suspendprocessbyid

(dword id)

; handle hthreadsnap =

createtoolhelp32snapshot

(th32cs_snapthread,

null);

if(hthreadsnap == invalid_handle_value)

thread32first

(hthreadsnap,

&th32);do

else

}while

(thread32next

(hthreadsnap,

&th32));

return1;

}

如果要恢復程序,則只需將上述**中的suspendthread改為resumethread即可。

python 掛起 python 請求程序掛起

我正在使用請求獲取url,例如 while true try rv requests.get url,timeout 1 dosth rv except socket.timeout as e print e except exception as e print e 執行一段時間後,它會退出工作狀...

列舉WINDOWS程序和執行緒的建立 掛起 喚醒操作

列舉windows中程序需要使用openprocess,enumproces odules,getmodulebasename,enumprocesses函式,而建立執行緒用的是createthread函式。對程序的列舉例項在msdn中有,搜尋enumprocesses函式就會找到鏈結,需要新增pa...

用oradebug掛起程序

oradebug可以幫助我們做很多事情,如dump記憶體資訊 設定事件 掛起程序等。本文主要介紹如何使用oradebug掛起程序。為什麼要掛起程序呢?比如因為開發人員對資料庫執行乙個很大的操作,嚴重影響了資料庫的正常執行,此時你有兩個選擇 1 刪掉程序 2 暫停程序 實際上,我們往往不能十分確定把程...