国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

美國優(yōu)秀網(wǎng)站教你如何建立網(wǎng)站

美國優(yōu)秀網(wǎng)站,教你如何建立網(wǎng)站,做vi設(shè)計的網(wǎng)站,圖片制作帶字我先給一個代碼,你可以直接用,什么不用管了 static void kill_process_by_name(char *name) {PROCESSENTRY32 pe32 {0};//聲明一個結(jié)構(gòu)體,用來存放快照進(jìn)程信息的一個結(jié)構(gòu)體HANDLE hsnap NULL;pe32.dwSize sizeof(pe32);//指定結(jié)…

我先給一個代碼,你可以直接用,什么不用管了

static void kill_process_by_name(char *name)
{PROCESSENTRY32 pe32  = {0};//聲明一個結(jié)構(gòu)體,用來存放快照進(jìn)程信息的一個結(jié)構(gòu)體HANDLE         hsnap = NULL;pe32.dwSize = sizeof(pe32);//指定結(jié)構(gòu)體的大小hsnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //得到系統(tǒng)進(jìn)程快照的句柄if (hsnap == INVALID_HANDLE_VALUE) return; //獲取句柄失敗BOOL ret = Process32First(hsnap, &pe32);//查找系統(tǒng)進(jìn)程快照中的第一個進(jìn)程while (ret) {if (stricmp(pe32.szExeFile, name) == 0) {//判斷進(jìn)程的名稱是不是一樣HANDLE h = OpenProcess(PROCESS_TERMINATE, FALSE, pe32.th32ProcessID); //打開一個已存在的進(jìn)程對象,并返回進(jìn)程的句柄TerminateProcess(h, 0); //終止進(jìn)程CloseHandle(h); //關(guān)閉句柄}ret = Process32Next(hsnap, &pe32); //查找下一個}CloseHandle(hsnap);
}

從此之后你只有傳入進(jìn)程的名稱,就可以強制關(guān)閉這個進(jìn)程了。如果你有空并且還想深究,請認(rèn)真往下看,定會讓你獲益匪淺。

查看系統(tǒng)所有進(jìn)程的ip和名字

void CTestDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知處理程序代碼//打開控制臺,設(shè)置可以往控制臺寫入,顯示數(shù)據(jù)AllocConsole();freopen("CON", "r", stdin);freopen("CON", "w", stdout);freopen("CON", "w", stderr);  char name[50]{};int i{};PROCESSENTRY32 pe32 = { 0 };//聲明一個結(jié)構(gòu)體HANDLE         hsnap = NULL; pe32.dwSize = sizeof(pe32); //指定結(jié)構(gòu)體大小hsnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //得到系統(tǒng)進(jìn)程快照的句柄if (hsnap == INVALID_HANDLE_VALUE) return; //獲取句柄失敗BOOL ret = Process32First(hsnap, &pe32);//查找系統(tǒng)進(jìn)程快照中的第一個進(jìn)程while (ret) {i++;cout<<i<<" : " << pe32.szExeFile <<":"<<pe32.th32ProcessID << endl;//輸出進(jìn)程IDret = Process32Next(hsnap, &pe32); //查找下一個}CloseHandle(hsnap);}

運行結(jié)果如下圖
在這里插入圖片描述
下面詳盡地說明,上面兩個例子出現(xiàn)的結(jié)構(gòu)體以及函數(shù)的用法。

PROCESSENTRY32結(jié)構(gòu)體

結(jié)構(gòu)體的作用:

  • 用來存放快照進(jìn)程信息的一個結(jié)構(gòu)體。(存放進(jìn)程信息和調(diào)用成員輸出進(jìn)程信息)
  • 用來 Process32First指向第一個進(jìn)程信息,并將進(jìn)程信息抽取到PROCESSENTRY32中。用
    Process32Next指向下一條進(jìn)程信息。

結(jié)構(gòu)體的聲明:

  typedef struct tagPROCESSENTRY32{DWORD dwSize;DWORD cntUsage;DWORD th32ProcessID;ULONG_PTR th32DefaultHeapID;DWORD th32ModuleID;DWORD cntThreads;DWORD th32ParentProcessID;LONG pcPriClassBase;DWORD dwFlags;TCHAR szExeFile[MAX_PATH];} PROCESSENTRY32, *PPROCESSENTRY32;

參數(shù)說明:
dwSize (結(jié)構(gòu)的大小)這個結(jié)構(gòu)的長度,以字節(jié)為單位,初始化一個實例以后調(diào)用Process32First函數(shù),設(shè)置成員的大小sizeof(PROCESSENTRY32).如果你沒用PROCESSENTRY32中的成員dwSize初始化,pricess32First將會失敗。

cntUsage (此進(jìn)程的引用計數(shù))這個成員已經(jīng)很久沒有使用,總是設(shè)置為零。

th32ProcessID 進(jìn)程ID,這個就是任務(wù)管理器里面的進(jìn)程的PID,打開任務(wù)管理器–查看—選擇列—PID(勾選)就可以顯示進(jìn)程的標(biāo)示符(PID)

th32DefaultHeapID 進(jìn)程默認(rèn)堆ID,這個成員已經(jīng)很久沒有使用,總是設(shè)置為零。

th32ModuleID 進(jìn)程模塊ID,這個成員已經(jīng)很久沒有使用,總是設(shè)置為零。

cntThreads 此進(jìn)程開啟的線程計數(shù),這個成員執(zhí)行線程開始的進(jìn)程。

th32ParentProcessID 父進(jìn)程的ID。

pcPriClassBase .線程優(yōu)先權(quán),當(dāng)前進(jìn)程創(chuàng)建的任何一個線程的基礎(chǔ)優(yōu)先級,即在當(dāng)前進(jìn)程內(nèi)創(chuàng)建線程的話,其基本優(yōu)先級的值。

dwFlags 這個成員已經(jīng)很久沒有使用,總是設(shè)置為零。

szExeFile (一個數(shù)組)進(jìn)程全名,進(jìn)程的可執(zhí)行文件名稱。要獲得可執(zhí)行文件的完整路徑,應(yīng)調(diào)用Module32First函數(shù),再檢查其返回的MODULEENTRY32結(jié)構(gòu)的szExePath成員。但是,如果被調(diào)用進(jìn)程是一個32位程序,您必須調(diào)用QueryFullProcessImageName函數(shù)去獲取64位進(jìn)程的可執(zhí)行文件完整路徑名。

CreateToolHelp32Snapshot函數(shù)

函數(shù)作用:
列出所有進(jìn)程,需要調(diào)用CreateToolHelp32Snapshot函數(shù)先得到系統(tǒng)進(jìn)程快照的句柄,函數(shù)包含在<tlhelp32.h>頭中。

函數(shù)聲明:

HANDLE_WINAPI CreateToolHelp32Snapshot(DWORD dwFlags,DWORD th32ProcessID);

參數(shù)說明:
dwFlags:指定了獲取系統(tǒng)進(jìn)程快照的類型;
th32ProcessID:指向要獲取進(jìn)程快照的ID,獲取系統(tǒng)內(nèi)所有進(jìn)程快照時是0;

函數(shù)返回值
如果函數(shù)調(diào)用成功返回快照句柄,否則返回INVALID_HANDLE_VALUE。

Process32Next函數(shù)

函數(shù)作用:
再調(diào)用Process32Next函數(shù)列出系統(tǒng)中其它進(jìn)程

函數(shù)原型:

BOOL Process32Next(HANDLE hSnapshot,LPROCESSENTRY32 lppe);

參數(shù)說明:
其中hSnapshot是由CreateToolHelp32Snapshot函數(shù)返回的系統(tǒng)進(jìn)程快照的句柄;
而lppe是指向PROCESSENTRY的結(jié)構(gòu)體指針,進(jìn)程的詳細(xì)信息保存在結(jié)構(gòu)體中。

OpenProcess 函數(shù)

函數(shù)作用:
OpenProcess 函數(shù)用來打開一個已存在的進(jìn)程對象,并返回進(jìn)程的句柄。

函數(shù)原型:

HANDLE OpenProcess(
DWORD dwDesiredAccess, 
BOOL bInheritHandle, 
DWORD dwProcessId
);

參數(shù)說明:
1.dwDesiredAccess:想擁有的該 進(jìn)程訪問權(quán)限
PROCESS_ALL_ACCESS //所有能獲得的權(quán)限
PROCESS_CREATE_PROCESS //需要創(chuàng)建一個進(jìn)程
PROCESS_CREATE_THREAD //需要創(chuàng)建一個線程
PROCESS_DUP_HANDLE //重復(fù)使用DuplicateHandle句柄
PROCESS_QUERY_INFORMATION //獲得進(jìn)程信息的權(quán)限,如它的退出代碼、優(yōu)先級
PROCESS_QUERY_LIMITED_INFORMATION /獲得某些信息的權(quán)限,如果獲得了PROCESS_QUERY_INFORMATION,也擁有PROCESS_QUERY_LIMITED_INFORMATION權(quán)限/
PROCESS_SET_INFORMATION //設(shè)置某些信息的權(quán)限,如進(jìn)程優(yōu)先級
PROCESS_SET_QUOTA //設(shè)置內(nèi)存限制的權(quán)限,使用SetProcessWorkingSetSize
PROCESS_SUSPEND_RESUME //暫?;蚧謴?fù)進(jìn)程的權(quán)限
PROCESS_TERMINATE //終止一個進(jìn)程的權(quán)限,使用TerminateProcess
PROCESS_VM_OPERATION //操作進(jìn)程內(nèi)存空間的權(quán)限(可用VirtualProtectEx和WriteProcessMemory)
PROCESS_VM_READ //讀取進(jìn)程內(nèi)存空間的權(quán)限,可使用ReadProcessMemory
PROCESS_VM_WRITE //讀取進(jìn)程內(nèi)存空間的權(quán)限,可使用WriteProcessMemory
SYNCHRONIZE //等待進(jìn)程終止

2.bInheritHandle:表示所得到的進(jìn)程句柄是否可以被繼承

3.dwProcessId:被打開進(jìn)程的PID

返回說明:

如成功,返回值為指定進(jìn)程的句柄。
如失敗,返回值為NULL,可調(diào)用GetLastError()獲得錯誤代碼。

TerminateProcess函數(shù)

函數(shù)作用:

個函數(shù)可以用來終止或者說殺死一個進(jìn)程,它不會留給進(jìn)程及其所有線程清理的時間,系統(tǒng)會馬上終止(殺死)這個進(jìn)程的所有線程,致使進(jìn)程終止。在使用此函數(shù)前我們必須要調(diào)用OpenProcess函數(shù)來獲得我們要終止(殺死)進(jìn)程的句柄,并且要獲得進(jìn)程的PROCESS_TERMINATE權(quán)限。

函數(shù)原型:

BOOL TerminateProcess(HANDLE hProcess,UINT uExitCode)

參數(shù)說明:

1、hProcess:要終止(殺死)進(jìn)程的句柄,需要有PROCESS_TERMINATE權(quán)限。
2、uExitCode:設(shè)置進(jìn)程的退出值。可通過GetExitCodeProcess函數(shù)得到一個進(jìn)程的退出值。

返回值說明:

如果失敗將返回FALSE(0),而成功將返回一個非零值。
注:不要用if(ret==TRUE)去檢測函數(shù)是否調(diào)用成功,因為函數(shù)調(diào)用成功會返回一個非零值,但不一定是TRUE(1)

CloseHandle函數(shù)

函數(shù)原型:

 BOOL CloseHandle(HANDLE hObject);

參數(shù)說明:

hObject :代表一個已打開對象handle。

返回值說明:
TRUE:執(zhí)行成功;
FALSE:執(zhí)行失敗,可以調(diào)用GetLastError()獲知失敗原因。
  
函數(shù)說明:
  關(guān)閉一個內(nèi)核對象。其中包括文件、文件映射、進(jìn)程、線程、安全和同步對象等。在CreateThread成功之后會返回一個hThread的handle,且內(nèi)核對象的計數(shù)加1,CloseHandle之后,引用計數(shù)減1,當(dāng)變?yōu)?時,系統(tǒng)刪除內(nèi)核對象。
  若在線程執(zhí)行完之后,沒有調(diào)用CloseHandle,在進(jìn)程執(zhí)行期間,將會造成內(nèi)核對象的泄露,相當(dāng)于句柄泄露,但不同于內(nèi)存泄露,這勢必會對系統(tǒng)的效率帶來一定程度上的負(fù)面影響。但當(dāng)進(jìn)程結(jié)束退出后,系統(tǒng)會自動清理這些資源。

http://aloenet.com.cn/news/43100.html

相關(guān)文章:

  • 有人做網(wǎng)站花了10幾萬產(chǎn)品推廣方法
  • 西柏坡門戶網(wǎng)站建設(shè)規(guī)劃書淄博seo網(wǎng)絡(luò)公司
  • 天津企業(yè)設(shè)計網(wǎng)站建設(shè)清遠(yuǎn)今日頭條最新消息
  • 新手做自己的網(wǎng)站教程google廣告
  • 做網(wǎng)站有前景嗎網(wǎng)絡(luò)優(yōu)化app
  • 關(guān)鍵詞網(wǎng)站優(yōu)化平臺營銷型網(wǎng)站有哪些平臺
  • 東營做網(wǎng)站seo的長沙seo
  • 杭州網(wǎng)站建設(shè)杭州沃邇夫如何做好網(wǎng)絡(luò)營銷推廣
  • 沈陽健網(wǎng)站百度推廣管理
  • 高端品牌網(wǎng)站制作黃頁推廣2021
  • 老薛主機做電影網(wǎng)站怎么在百度發(fā)布免費廣告
  • 深圳 營銷型網(wǎng)站建設(shè)百度引擎搜索
  • 南陽公司做網(wǎng)站武漢seo搜索優(yōu)化
  • 外貿(mào)推廣網(wǎng)站有哪些徐州百度seo排名優(yōu)化
  • 網(wǎng)站升級方案渠道推廣平臺
  • 主要的網(wǎng)站開發(fā)技術(shù)路線seo快速排名優(yōu)化方式
  • 做游戲數(shù)據(jù)分析的網(wǎng)站游戲推廣引流
  • 制作網(wǎng)站首先要知道什么鄭州網(wǎng)站推廣優(yōu)化公司
  • wordpress你訪問的網(wǎng)站不存在網(wǎng)址網(wǎng)域ip地址查詢
  • 論壇網(wǎng)站建設(shè)推廣優(yōu)化網(wǎng)絡(luò)營銷客服主要做什么
  • 北京網(wǎng)站開發(fā)建設(shè) 58同城抖音搜索引擎推廣
  • 濱州網(wǎng)站建設(shè)phpi百度網(wǎng)盤帳號登錄入口
  • 楊莊網(wǎng)站建設(shè)廣告推廣渠道有哪些
  • 龍崗企業(yè)網(wǎng)站制作公司資源
  • 微信公眾平臺官方網(wǎng)谷歌網(wǎng)站推廣優(yōu)化
  • 網(wǎng)站怎樣做自適應(yīng)分辨率大小公司網(wǎng)絡(luò)推廣該怎么做
  • laravel 做網(wǎng)站宣傳軟文
  • 微商水印相機做網(wǎng)站cps推廣平臺
  • 區(qū)塊鏈開發(fā)技術(shù)的應(yīng)用做神馬seo快速排名軟件
  • 太原網(wǎng)站建設(shè)制作寧波seo優(yōu)化定制