`
toyota2006
  • 浏览: 547162 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

vb检测某个进程是否运行

阅读更多
vb检测某个进程是否运行


在模块中加入如下代码:

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("QQ.exe") Then '检测QQ.exe进程是否存在
MsgBox "存在!" 
Else 
MsgBox "不存在!" 
End If 
End Sub



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics