我正在尝试使用excel Visual Basic中的程序与一个相当古老的程序进行通信,我的公司会在其中存储所有销售信息。
我希望能够让我的Excel程序知道第三方程序何时完成它的任务。
我在另一个程序中创建了一个宏,最终最小化了程序,我想知道VBA是否可以知道其他程序的窗口是否被最小化。
答案 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