在FindWindow的第一个参数使用ClassName而不是使用使用第二个参数的Window Title即可 如找到任意一个运行的记事本程序: Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click() Dim mWnd As Long mWnd = FindWindow("Notepad", vbNullString) If mWnd = 0 Then Me.Print "NotePad window not found!" Else Me.Print "Find" End If End Sub
获得活动窗口的句柄
TO:Jneu(沧海桑田) 当前活动窗口肯定是我的程序啊。
如找到任意一个运行的记事本程序:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click()
Dim mWnd As Long mWnd = FindWindow("Notepad", vbNullString)
If mWnd = 0 Then
Me.Print "NotePad window not found!"
Else
Me.Print "Find"
End If
End Sub
我认为用FindWindow ClassName存在问题:比如说,所有以VB编写的MDI风格的程序的主窗体,其类名都是相同的“THunderRT6MDIForm”,所以用类名的方法也不十分可靠。