看看这个帖子,里面有一个找窗口的函数,就是解决这个的
http://www.csdn.net/expert/topic/277/277117.shtm 

解决方案 »

  1.   

      Private Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
      获得活动窗口的句柄 
      

  2.   

    ozw(沧浪客) 的方法看来可行,让我试一下。
    TO:Jneu(沧海桑田) 当前活动窗口肯定是我的程序啊。
      

  3.   

    在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
      

  4.   

    OZW的方法看来可以,待我试试TO: hydnoahark(诺亚方舟) :
    我认为用FindWindow ClassName存在问题:比如说,所有以VB编写的MDI风格的程序的主窗体,其类名都是相同的“THunderRT6MDIForm”,所以用类名的方法也不十分可靠。
      

  5.   

    hydnoahark的方法我试过了,对notepad.exe 可以,但换成write.exe 就不灵了。所以说是不行的。