vb.net,知道一个窗口的标题,窗口正在运行,如何使程序在该窗口关闭时Msgbox"窗口已关闭"

2024-11-07 05:37:52
推荐回答(2个)
回答(1):

  1. 利用Process类遍历当前所有进程,利用MainWindowTitle属性来获取指定窗口标题的进程ID,创建一个线程池或者线程,来循环检测这个ID的进程是否已退出,在循环线程中设置Thread.Sleep(50)中断来减少系统开销,这个方法仅适用于主窗口,也就是窗体关闭,程序就退出了,如果针对的是子窗口,就用第二种方法。

  2. 利用系统API,循环遍历所有窗口,当指定标题不存在时就是已经退出了。

回答(2):

Private Declare Auto Function FindWindow Lib "user32" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Integer
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim hWnd As Integer
do
hWnd = FindWindow(vbNullString, "窗体名")
My.Application.DoEvents()
loop until hwnd=0
msgbox "窗口已关闭"
End Sub