如果有一个可执行文件正在运行 我怎么在知道文件名的情况下 结束这个文件所开启的进程
解决方案 »
- vb6调用sql server2000存储过程出错
- 求大小
- 关于在VB中使用WIA进行扫描如何解决?
- VB6调用Word的问题,一直等待中...
- 关于控件的一个小问题.请指教,谢谢.
- 关于VB里数据库搜索的问题,“select * from article[表名] where title[字段名] like '%d%'[title里有包含d的数据]”为什么搜不出来?
- 如何用VB实现词法分析程序的功能?
- 跪求vb6.0制作的网页浏览器(包括毕业设计++论文)
- 向大家吐血推荐:vs.net正式版下载地址
- 在WIN98下如何查看内存被消耗的情况?另外在VB中是不是有一些函数消耗内存??
- 关于视频文件的局域网播放!
- 动态加载frame控件时,如何同时加载其中的其它控件?
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_CLOSE = &H10
Sub Main()
Dim Wnd As Long
Wnd = Findwindow(vbNullString, "你的窗体标题")
If Wnd <> 0 Then
iResult = MsgBox("Do you want to End: " & M$, 4, "KillApp")
If iResult = 6 Then
lResult = SendMessage(Wnd, WM_CLOSE, 0, 0)
'关闭函数
End If
End
End If
End Sub
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long
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 * 1024
End Type
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
Dim PID As Long
Dim pname As String
Public Const PROCESS_TERMINATE = &H1Public Function CheckExE(ByVal ExePath As String) As Long
Dim my As PROCESSENTRY32
Dim l As Long
Dim l1 As Long
Dim flag As Boolean
Dim mName As String
Dim i As Integer
l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If l Then
my.dwSize = 1060
CheckExE = 0
If (Process32First(l, my)) Then '遍历第一个进程
Do
i = InStr(1, my.szExeFile, Chr(0))
mName = LCase(Left(my.szExeFile, i - 1))
If FindStr(mName, ExePath) = True Then
CheckExE = my.th32ProcessID
flag = True
Exit Function
'Else
' CheckExE = 0
' flag = False
End If
Loop Until (Process32Next(l, my) < 1) '遍历所有进程知道返回值为False
End If
l1 = CloseHandle(l)
End If
End Function'结束一个进程
Public Function EndPro(ByVal PID As Long)
On Error Resume Next
Dim lngHwndProcess As Long
Dim hand As Long
Dim exitCode As Long
hand = OpenProcess(PROCESS_TERMINATE, True, PID)
TerminateProcess hand, exitCode
CloseHandle hand
End Function
if checkexe("qq.exe")<>0 then
endpro checkexe("qq.exe")
endif
Public Function FindStr(ByVal iStr As String, ByVal iKey As String) As Boolean
Dim I As Integer
For I = 1 To Len(iStr) - (Len(iKey) - 1)
If UCase(iKey) = UCase(Mid(iStr, I, Len(iKey))) Or UCase(iKey) = UCase(iStr) Then
FindStr = True
Exit Function
Else
FindStr = False
End If
Next I
End Function