📄 2268.html
字号:
<html>
<head>
<title>Re: 如何关闭叫出执行的程式</title>
</head>
<BODY BACKGROUND="" BGCOLOR="white" TEXT="black" LINK="red" VLINK="#808080" ALINK="">
<center>
<h1>Re: 如何关闭叫出执行的程式</h1>
</center>
<HR><p>
Posted by <a href="mailto:cww5@mail.ncku.edu.tw">cww</a> on March 15, 1998 at 21:32:05:<p>
In Reply to: <a href="2229.html"><b>如何关闭叫出执行的程式</b></a> posted by 赖皮 on March 12, 1998 at 08:55:31:<p>
<br>Private Declare Function OpenProcess Lib "kernel32" _<br> (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _<br> ByVal dwProcessId As Long) As Long<br>Private Declare Function CloseHandle Lib "kernel32" _<br> (ByVal hObject As Long) As Long<br>Private Declare Function GetExitCodeProcess Lib "kernel32" _<br> (ByVal hProcess As Long, lpExitCode As Long) As Long<br>Private Declare Function TerminateProcess Lib "kernel32" _<br> (ByVal hProcess As Long, ByVal uExitCode As Long) As Long<br>Const PROCESS_QUERY_INFORMATION = &H400<br>Const STILL_ALIVE = &H103<br>Const INFINITE = &HFFFF<p>Private ExitCode As Long<br>Private hProcess As Long<br>Private isDone As Long<p>Private Sub Command1_Click()<br>Dim pid As Long<br>pid = Shell("C:\tools\spe3\pe2.exe", vbNormalFocus)<br>hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)<br>isDone = False<br>Do<br> Call GetExitCodeProcess(hProcess, ExitCode)<br> Debug.Print ExitCode<br> DoEvents<br>Loop While ExitCode = STILL_ALIVE<br>Call CloseHandle(hProcess)<br>isDone = True<br>End Sub<p>Private Sub Command3_Click()<br>Dim aa As Long<br>If hProcess 0 Then<br> aa = TerminateProcess(hProcess, 3838)<br>End If<p>End Sub<p>执行了 TerminateProcess(hProcess, 3838)那会看到 command1_click()<br>的ExitCode = 3838。然<br>而,这个方式在win95没问题,在NT中,可能您要在OpenProcess()的第一个参数要<br>更改成 PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE 这样才能Work。不过<br>良心的建议,非到最后关头,不要使用TerminateProcess(),因不正常的结束,往<br>往许多程式结束前所要做的事都没有做,可能造成Resource的浪费,甚者,下次再<br>执行某些程式时会有问题<p>
<br>
<p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 2268-->
</ul><!--end: 2268-->
<br><HR><p>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -