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 Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Boolean
Const PROCESS_TERMINATE = 1
Private Sub Form_Load()
Dim ProID As Long
ProID = Shell("notepad.exe", vbNormalFocus)
Sleep 2000 '两秒钟后关闭
Dim hProcess As Long
hProcess = OpenProcess(PROCESS_TERMINATE, False, ProID)
TerminateProcess hProcess, 1
CloseHandle hProcess
End Sub
这个例子是打开一个记事本,然后2秒后关闭它.
我想打击一个按钮,打开记事本,然后在退出程序后关闭它,怎么实现呢?
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 Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Boolean
Const PROCESS_TERMINATE = 1
Private Sub Form_Load()
Dim ProID As Long
ProID = Shell("notepad.exe", vbNormalFocus)
Sleep 2000 '两秒钟后关闭
Dim hProcess As Long
hProcess = OpenProcess(PROCESS_TERMINATE, False, ProID)
TerminateProcess hProcess, 1
CloseHandle hProcess
End Sub
这个例子是打开一个记事本,然后2秒后关闭它.
我想打击一个按钮,打开记事本,然后在退出程序后关闭它,怎么实现呢?
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Boolean
private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Const INFINITE = &HFFFF
Const PROCESS_TERMINATE = 1
Private Sub Form_Load()
Dim ProID As Long
ProID = Shell("notepad.exe", vbNormalFocus)
Sleep 2000 '两秒钟后关闭
Dim hProcess As Long
hProcess = OpenProcess(PROCESS_TERMINATE, False, ProID)
WaitForSingleObject hProcess,INFINITE '等待笔记本结束
CloseHandle hProcess
End Sub
不知道怎么写!
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 Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Boolean
Const PROCESS_TERMINATE = 1Dim ProID As LongPrivate Sub Form_Load()
ProID = Shell("notepad.exe", vbNormalFocus)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Dim hProcess As Long
hProcess = OpenProcess(PROCESS_TERMINATE, False, ProID)
TerminateProcess hProcess, 1
CloseHandle hProcess
End Sub
这样做可以在函数的返回信息中直接获得进程句柄,不用再OpenProcess。