Private Declare Function TerminateProcess Lib "kernel32" _ (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Const PROCESS_QUERY_INFORMATION = &H400 Private hProcess As Long -----------------在程序中------------------ Dim pid As Long pid = Shell("notepad.exe", vbNormalFocus) hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid) ----------------如果要关闭----------------- If hProcess 0 Then aa = TerminateProcess(hProcess, 3838) End If
***********************************************************************************************************
ExitProcess VB声明 Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As Long) 说明 中止一个进程 参数表 参数 类型及说明 uExitCode Long,指定想中断的那个进程的一个退出代码 在VB中使用 应尽量避免用该函数来关闭进程。不要在自己的VB程序中使用它。此时,应试着向要关闭的那个程序的主窗口投递一条WM_CLOSE消息 *************************************************************************************************************** Option Explicit Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Declare Function OpenProcess Lib "kernel32" _ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessID As Long) As Long Private Const PROCESS_TERMINATE = &H1 Private hProcess As Long '打开进程 Private Sub Command1_Click() Dim pid As Long pid = Shell("c:/winnt/System32/calc.exe", vbNormalFocus) If pid = 0 Then MsgBox "没有打开程序" Else hProcess = OpenProcess(PROCESS_TERMINATE, 0, pid) End If End Sub '关闭进程 Private Sub Command2_Click() Dim l As Long l = TerminateProcess(hProcess, 1) If l 0 Then MsgBox "成功关闭" Else MsgBox "未关闭" End If End Sub
|