首页编程processentry32,求详细介绍Process32First这个API函数及其参数的用法

processentry32,求详细介绍Process32First这个API函数及其参数的用法

编程之家2023-11-0241次浏览

大家好,processentry32相信很多的网友都不是很明白,包括求详细介绍Process32First这个API函数及其参数的用法也是一样,不过没有关系,接下来就来为大家分享关于processentry32和求详细介绍Process32First这个API函数及其参数的用法的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

processentry32,求详细介绍Process32First这个API函数及其参数的用法

如何把opus光谱导入excel

有几种方法1.根据窗口名称判断Option ExplicitPrivate Declare Function FindWindow Lib"user32" Alias"FindWindowA"(ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click() Dim lngWindow As Long lngWindow= FindWindow(vbNullString,"文档1- Microsoft Word") If lngWindow<> 0 Then MsgBox"Word已运行" End IfEnd Sub2.最好的办法是根据类名判断,但是要预先知道窗口类名比如Word类名:OpusAppExcel类名:XLMAINPPT2010类名:PP12FrameClassPPT2007类名:PP11FrameClassPPT2003类名:PP10FrameClass'声明必要的 API:Private Declare Function FindWindow Lib"user32" Alias _"FindWindowA"(ByVal lpClassName As String, _ ByVal lpWindowName As Long) As LongPrivate Declare Function SendMessage Lib"user32" Alias"SendMessageA"(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long'检测Word是否运行Private Sub DetectWord() Dim hWnd As Long'如果 Word在运行,则该 API调用将返回其句柄。 hWnd= FindWindow("OpusApp", 0) If hWnd= 0 Then'0表示没有 Word在运行。 MsgBox Word没有运行!" Else MsgBox Word已经运行!" End IfEnd Sub3.检测进程名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 Const MAX_PATH As Integer= 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String* MAX_PATH End Type Private Declare Function CreateToolhelp32Snapshot Lib"kernel32"(ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function Process32First Lib"kernel32"(ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib"kernel32"(ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Sub ExitProcess Lib"kernel32"(ByVal uExitCode As Long) Private Declare Function GetExitCodeProcess Lib"kernel32"(ByVal hProcess As Long, lpExitCode As Long) As Long Function exitproc(ByVal exefile As String) As Boolean exitproc= False Dim hSnapShot As Long, uProcess As PROCESSENTRY32 hSnapShot= CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&) uProcess.dwSize= Len(uProcess) r= Process32First(hSnapShot, uProcess) Do While r If Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0))> 0, InStr(1, uProcess.szExeFile, Chr$(0))- 1, 0))= exefile Then exitproc= True Exit Do End If r= Process32Next(hSnapShot, uProcess) Loop End Function Private Sub Command1_Click() If exitproc("winword.exe")= True Then MsgBox"Word已经运行!" Else MsgBox"Word没有运行!" End If End Sub

求详细介绍Process32First这个API函数及其参数的用法

process32First是一个进程获取函数,当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用process32First函数来获得第一个进程的句柄.其原型为(用的是vfp) DECLARE INTEGER Process32First IN WIN32API; INTEGER hSnapshot,STRING@ lppe在C语言中如下 BOOL WINAPI Process32First( HANDLE hSnapshot, LPPROCESSENTRY32 lppe);此函数往往和 Process32Next( Handle hsnapShot, LPPROCESSENTRY32 lppe)搭配使用,用来枚举当前系统快照相关的所有进程。这些只是一点点,如有更好的解说,请告诉我,谢谢! 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'用来判断快照MySnapHandle成功获得进程信息 end if end sub=============================================================================== C/C++ Code: PROCESSENTRY32*info;//在使用这个结构之前,先设置它的大小 info->dwSize= sizeof(PROCESSENTRY32); char proName[]={"devenv.exe"}; HANDLE handlePro= NULL;//结束进程句柄//给系统内的所有进程拍一个快照 HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(hProcessSnap== INVALID_HANDLE_VALUE){ printf(" CreateToolhelp32Snapshot调用失败!\n"); return-1;}//遍历进程快照,轮流显示每个进程的信息 BOOL bMore=::Process32First(hProcessSnap, info); BOOL terminate= FALSE; while( bMore!= FALSE){ if(strcmp(proName,info->szExeFile)== 0){ handlePro=OpenProcess(PROCESS_TERMINATE, FALSE, info->th32ProcessID); if(NULL== handlePro){ break;}//结束进程 terminate= TerminateProcess(handlePro, 0);} bMore= Process32Next(hProcessSnap, info);}::CloseHandle(hProcessSnap);

好了,文章到此结束,希望可以帮助到大家。

processentry32,求详细介绍Process32First这个API函数及其参数的用法
阿里云服务器购买?阿里云服务器怎么购买武汉dell服务器,dell,ibm服务器与浪潮服务器硬件参数及服务的区别