📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "WaitForSingleObject"
ClientHeight = 1575
ClientLeft = 60
ClientTop = 345
ClientWidth = 2925
LinkTopic = "Form1"
MaxButton = 0 'False
ScaleHeight = 1575
ScaleWidth = 2925
StartUpPosition = 2 '屏幕中心
Begin VB.CommandButton Command1
Caption = "运行记事本"
Height = 375
Left = 720
TabIndex = 0
Top = 600
Width = 1335
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
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 WaitForSingleObject Lib "kernel32" _
( _
ByVal hHandle As Long, _
ByVal dwMilliseconds As Long _
) As Long
Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = &HFFFFFFFF
Private Sub Command1_Click()
'Dim pId As Long
'声明pId变量存储Process Id
Dim pHnd As Long
'声明pHnd变量存储Process Handle
'pId = Shell("Notepad", vbNormalFocus)
'Shell传回Process Id
'pHnd = OpenProcess(SYNCHRONIZE, 0, pId)
'取得 Process Handle
pHnd = Shell_GetHnd("Notepad", vbNormalFocus)
If pHnd <> 0 Then
Call WaitForSingleObject(pHnd, INFINITE)
'无限等待,直到程序结束
Call CloseHandle(pHnd)
End If
MsgBox ("记事本已经关闭!")
End Sub
Private Function Shell_GetHnd(ByVal PathName As String, _
Optional WindowStyle As VbAppWinStyle = vbMaximizedFocus, _
Optional pID As Long) As Long
pID = Shell(PathName, WindowStyle)
Shell_GetHnd = OpenProcess(SYNCHRONIZE, 0, pID)
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -