進(jìn)程與線程API

windows api的一些總結(jié)(進(jìn)程與線程)

創(chuàng)建進(jìn)程:
CreateProcess("C:\\windows\\notepad.exe",0,0,0,0,0,0,0,&si,&pi);
WinExec("notepad",SW_SHOW);//exe文件
ShellExcute(0,"open","notepad","c:\\a.txt","",SW_SHOW);
創(chuàng)建線程:
CreateThread(0,0,startAddr,&Para,0,&tid);
CrateRemoteThread(hProc,0,0,startAddr,&Para,0,&tid);
_beginthread(startAddr,0,0);
_beginthreadex(0,0,startaddr,0,0,&tid);

打開進(jìn)程:
OpenProcess(PROCESS_ALL_ACCESS,0,pid);
打開線程:
OpenThread(THREAD_ALL_ACCESS,0,&tid);
遍歷進(jìn)程:
CreateToolhelp32SnapShot(TH32CS_SNAPPROCESS,0);
Process32First(hsnap,&pe32);
Process32Next(hsnap,&pe32);

遍歷線程:
CreateToolhelp32SnapShot(TH32CS_SNAPTHREADED,0);
Thread32First(hsnap,&mdl32);
Thread32Next(hsnap,&mdl32);
終止進(jìn)程:
ExitProcess(0);
TerminateProcess(hProcess,0);

終止線程:
ExitThread(5);
TerminateThread(5);
關(guān)閉線程句柄:
CloseHandle(handle);

獲取當(dāng)前進(jìn)程句柄(偽句柄)
GetCurrentProcess();返回值-1
獲取當(dāng)前線程句柄
GetCurrentThread();返回值-2
獲取當(dāng)前進(jìn)程ID
GetProcessId();
獲取當(dāng)前線程 ID
GetThreadId();
讀寫遠(yuǎn)程進(jìn)程數(shù)據(jù)
ReadProcessMemory(
hProcess,            //遠(yuǎn)程進(jìn)程句柄
baseAddr,            //遠(yuǎn)程進(jìn)程中的內(nèi)存地址,從具體何處讀取
Buf,                    //本地進(jìn)程中內(nèi)存地址,函數(shù)將讀取的內(nèi)容寫入此處
len,                     //要讀取的長(zhǎng)度
&size                  //實(shí)際讀取的長(zhǎng)度
);

 WriteProcessMemory(
hProcess,              //要寫入的進(jìn)程的句柄,由OpenProcess返回
baseAddr,                //要寫入的目標(biāo)進(jìn)程的內(nèi)存首地址,這里是目的地螺句!
Buf,                     //指向要寫入的數(shù)據(jù)的指針,數(shù)據(jù)從哪兒來,就從這個(gè)指針?biāo)赶虻哪莻€(gè)地方!這里是源頭!
len,                      //要寫入的字節(jié)數(shù)
&size                  //實(shí)際寫入的字節(jié)數(shù)
);
申請(qǐng)內(nèi)存
VirtualAlloc(0,size,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
申請(qǐng)遠(yuǎn)程內(nèi)存
VirtualAllocEx(hprocess,0,size,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
修改內(nèi)存屬性
VirtualProtect(addr,Size,PAGE_EXECUTE_READWRITE,&lpflOldProtect );
VirtualProtectEx(hproc,addr,Size,PAGE_EXECUTE_READWRITE,&lpflOldProtect );

釋放內(nèi)存:
VirtualFree(addr,size,MEM_RELEASE);
VirtualFreeEx(hProcess,addr,size,MEM_RELEASE);
讀寫進(jìn)程優(yōu)先級(jí)
SetPriorityclass(hproc,Normal);
GetPriority(hproc);

讀取線程優(yōu)先級(jí):
SetThreadPriority(hthread,Normal);
GetThreadPriority(hthread);
SetThreadPriorityBoost(hproc,true);
GetThreadPriorityBoost(hproc,pBoost);
獲取系統(tǒng)新版本:(WinNT/2K/XP<0x80000000)
getVersion();
掛起與激活線程(維護(hù)暫停次數(shù))
SuspendThread(hthread);
ResumeThread(hthread);
等待線程退出
WaitForSingleObject(hthread,1000);
WaitForMultipleObject(num,handles,true,INFINITE);
獲取線程退出碼
GetExitCode(hthread,&code);
獲取線程函數(shù)地址入口
ZwQueryInformationThread(hthread,ThreadQuerySetWin32StartAddress,&Buf,4,NULL)


GetModuleFileName() :函數(shù)返回當(dāng)前進(jìn)程已加載可執(zhí)行或DLL文件的完整路徑名(以'\0'終止),該模塊必須由當(dāng)前進(jìn)程地址空間加載瞧毙。
DWORD WINAPI GetModuleFileName(
  _In_opt_  HMODULE hModule,   //應(yīng)用程序或DLL實(shí)例句柄,NULL則為獲取當(dāng)前程序可執(zhí)行文件路徑名
  _Out_     LPTSTR lpFilename, //接收路徑的字符串緩沖區(qū)
  _In_      DWORD nSize        //接收路徑的字符緩沖區(qū)的大小
);
線程同步事件內(nèi)核對(duì)象:
OpenEvent(EVENT_ALL_ACCESS,false,Name);
CreateEvent(NULL,false,true,NULL);
WaitForSingleObject(hEvent,INFINITE);
SetEvent(hevent);
ReSetEvent(hevent);

線程同步互斥內(nèi)核對(duì)象:
OpenMutex(MUTEX_ALL_ACCESS,false,name);
CreateMutex(NULL,false,NULL);
WaitForSingleObject(hmutex,INFINITE);
ReleaseMutex(hmutex);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赦拘,一起剝皮案震驚了整個(gè)濱河市待秃,隨后出現(xiàn)的幾起案子奔垦,更是在濱河造成了極大的恐慌差凹,老刑警劉巖瘦材,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厅须,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡食棕,警方通過查閱死者的電腦和手機(jī)朗和,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來簿晓,“玉大人眶拉,你說我怎么就攤上這事∏朗矗” “怎么了镀层?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我唱逢,道長(zhǎng)吴侦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任坞古,我火速辦了婚禮备韧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痪枫。我一直安慰自己织堂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布奶陈。 她就那樣靜靜地躺著易阳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吃粒。 梳的紋絲不亂的頭發(fā)上潦俺,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音徐勃,去河邊找鬼事示。 笑死,一個(gè)胖子當(dāng)著我的面吹牛僻肖,可吹牛的內(nèi)容都是我干的肖爵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼臀脏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼劝堪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起揉稚,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤幅聘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后窃植,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荐糜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年巷怜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暴氏。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡延塑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出答渔,到底是詐尸還是另有隱情关带,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站宋雏,受9級(jí)特大地震影響芜飘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜磨总,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一嗦明、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚪燕,春花似錦娶牌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鲁驶,卻和暖如春鉴裹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灵嫌。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工壹罚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寿羞。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓猖凛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親绪穆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辨泳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • HTML基礎(chǔ) 開始 上周我已經(jīng)學(xué)習(xí)了一些開發(fā)工具(Sublim Text、vscode)玖院,我學(xué)會(huì)了如何一些基礎(chǔ)設(shè)置...
    H少白閱讀 714評(píng)論 0 4
  • 背景 MySQL/InnoDB的加鎖分析菠红,一直是一個(gè)比較困難的話題。我在工作過程中难菌,經(jīng)常會(huì)有同事咨詢這方面的問題试溯。...
    MakeACoder閱讀 613評(píng)論 0 3
  • Steam平臺(tái)分析 以下是2018年1月2日-1月3日觀察日活數(shù)據(jù): 可以看到steam在一個(gè)平常日中日活數(shù)量達(dá)到...
    只是不經(jīng)意閱讀 2,757評(píng)論 0 6
  • 來源:微信公眾號(hào)表妹的EXCEL EXCEL說難不難遇绞,說簡(jiǎn)單也還真不簡(jiǎn)單。撇開成百上千的函數(shù)公式不談燎窘,單單就從功能...
    表妹的EXCEL閱讀 906評(píng)論 0 5
  • 黨和政府非常重視農(nóng)村教育摹闽,農(nóng)村學(xué)校校園越來越美,可老師越來越老褐健、學(xué)生越來越少付鹿,為改變撤點(diǎn)并校、城鎮(zhèn)化進(jìn)程加...
    河北南和劉志玉閱讀 137評(píng)論 0 5