有没有办法让Visual Basic知道第三方程序是否被最小化?

时间:2015-06-18 22:46:08

标签: excel-vba vba excel

我正在尝试使用excel Visual Basic中的程序与一个相当古老的程序进行通信,我的公司会在其中存储所有销售信息。

我希望能够让我的Excel程序知道第三方程序何时完成它的任务。

我在另一个程序中创建了一个宏,最终最小化了程序,我想知道VBA是否可以知道其他程序的窗口是否被最小化。

1 个答案:

答案 0 :(得分:2)

虽然我发现你在评论中找到了解决办法,但我认为我会为找到这个问题的其他人发布解决方案。您可以使用对IsIconic的API调用来测试窗口是否最小化:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function IsIconic Lib "user32" _
    (ByVal hwnd As Long) As Boolean

Public Sub Example()

    Shell "notepad.exe", vbMinimizedNoFocus

    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, "Untitled - Notepad")
    Debug.Print IsIconic(hwnd)

End Sub