分享
 
 
 

CreateToolhelp32Snapshot

王朝百科·作者佚名  2010-01-07
窄屏简体版  字體: |||超大  

CreateToolhelp32Snapshot函数为指定的进程、进程使用的堆[HEAP]、模块[MODULE]、线程[THREAD])建立一个快照[snapshot]。

HANDLE WINAPI CreateToolhelp32Snapshot(

DWORD dwFlags,

DWORD th32ProcessID

);

参数:

dwFlags

[输入]指定快照中包含的系统内容,这个参数能够使用下列数值(变量)中的一个。

TH32CS_INHERIT - 声明快照句柄是可继承的。

TH32CS_SNAPALL - 在快照中包含系统中所有的进程和线程。

TH32CS_SNAPHEAPLIST - 在快照中包含在th32ProcessID中指定的进程的所有的堆。

TH32CS_SNAPMODULE - 在快照中包含在th32ProcessID中指定的进程的所有的模块。

TH32CS_SNAPPROCESS - 在快照中包含系统中所有的进程。

TH32CS_SNAPTHREAD - 在快照中包含系统中所有的线程。

Const TH32CS_SNAPHEAPLIST = &H1

Const TH32CS_SNAPPROCESS = &H2

Const TH32CS_SNAPTHREAD = &H4

Const TH32CS_SNAPMODULE = &H8

Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)

Const TH32CS_INHERIT = &H80000000

th32ProcessID

[输入]指定将要快照的进程ID。如果该参数为0表示快照当前进程。该参数只有在设置了TH32CS_SNAPHEAPLIST,TH32CS_SNAPMODULE,TH32CS_SNAPALL后才有效,在其他情况下该参数被忽略,所有的进程都会被快照。

返回值:

调用成功,返回快照的句柄,调用失败,返回INVAID_HANDLE_VALUE。

备注:

使用GetLastError函数查找该函数产生的错误状态码。

要删除快照,使用CloseHandle函数

delphi使用实例:

uses TLHelp32;

procedure TForm1.Button1Click(Sender: TObject);

var

ProcessName: string;

ProcessID: integer;

ListLoop: Boolean;

FsnapShotHandle: Thandle;

FProcessEntry32: TProcessEntry32;

begin

Fsnapshothandle := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);

FProcessEntry32.dwsize := SizeOF(FProcessEntry32);

Listloop := Process32First(FSnapshotHandle, FProcessEntry32);

while Listloop do begin

ProcessName := FprocessEntry32.szExeFile;

ProcessID := FProcessEntry32.th32ProcessID;

// 我写到列表框中了,你可以根据需要自己改

listbox1.Items.Add('Process NAME:' + ProcessNAme);

ListLoop := Process32Next(FSnapshotHandle, FprocessEntry32);

end;

end;

VB使用实例:

Private Type PROCESSENTRY32

dwSize As Long

cntUseage As Long

th32ProcessID As Long

th32DefaultHeapID As Long

th32ModuleID As Long

cntThreads As Long

th32ParentProcessID As Long

pcPriClassBase As Long

swFlags As Long

szExeFile As String * 1024

End Type

Private sub demo()

Dim MySnapHandle As Long

Dim ProcessInfo As PROCESSENTRY32

MySnapHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)

ProcessInfo.dwSize = Len(ProcessInfo)

If Process32First(MySnapHandle, ProcessInfo) <> 0 Then

Do

If Left(LCase(ProcessInfo.szExeFile), InStr(ProcessInfo.szExeFile, ".") + 3) = "notepad.exe" Then

'遍历进程,查找notepad.exe,找到后执行操作.......

End If

Loop While Process32Next(MySnapHandle, ProcessInfo) <> 0

End If

CloseHandle MySnapHandle

end sub

C++例子:

#include "StdAfx.h"

#include "windows.h"

#include "tlhelp32.h"

#include "stdio.h"

int main(int argc, char* argv[])

{

PROCESSENTRY32 pe32;

//在使用这个结构前,先设置它的大小

pe32.dwSize = sizeof(pe32);

//给系统内所有的进程拍个快照

HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if (hProcessSnap == INVALID_HANDLE_VALUE)

{

printf("CreateToolhelp32Snapshot 调用失败.

");

return -1;

}

//遍历进程快照,轮流显示每个进程的信息

BOOL bMore = ::Process32First(hProcessSnap,&pe32);

while (bMore)

{

printf("进程名称:%s

",pe32.szExeFile);

printf("进程ID:%u

",pe32.th32ProcessID);

bMore = ::Process32Next(hProcessSnap,&pe32);

}

//不要忘记清除掉snapshot对象

::CloseHandle(hProcessSnap);

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有