Tag: 窗口样式

如何在VBA中使用.Run的时候隐藏所有的窗口,当windowStyle = 0时是不够的

在VBA中使用.Run启动.exe时,典型的调用可能如下所示: x = wsh.Run(Command:="program.exe ""argument""", WindowStyle:=0, waitonreturn:=False) 其中windowStyle=0理论上应该使程序对用户不可见。 但是如果在.exe中出现一个popup窗口,您不希望用户看到该怎么办? windowStyleinput不会抑制警告消息的出现或popup窗口,声明“计算完成”这样的东西显示给用户,这通常也会暂停代码,直到popup窗口被清除。 以自动方式清除窗口(即点击'好')是微不足道的(见这个答案 ),但防止它出现给用户开始对我来说是困难的作为一个相对的初学者。 (即当popup由.exe触发时,它对用户是不可见的,然后由VBA代码自动closures) 目前我使用这个函数检测到新popup窗口的存在(其中sCaption是popup窗口的名称): Private Function GetHandleFromPartialCaption(ByRef lWnd As Long, ByVal sCaption As String) As Boolean Dim lhWndP As Long Dim sStr As String GetHandleFromPartialCaption = False lhWndP = FindWindow(vbNullString, vbNullString) 'PARENT WINDOW Do While lhWndP <> 0 sStr = String(GetWindowTextLength(lhWndP) + 1, Chr$(0)) GetWindowText […]