AutoIt如何用单例取消隐藏初始窗口

时间:2017-10-27 06:40:30

标签: user-interface window autoit window-handles

我有一个可以最小化到系统托盘的单例应用程序。可能会发生用户启动应用程序的另一个实例,并且_singleton我检测到脚本的第一个实例,并在退出新实例之前激活窗口。

但是当使用GUISetState(@SW_HIDE)隐藏第一个实例时,第一个实例未显示。我试图让窗口处理,但没有成功。

如何取消隐藏第一个实例?

请考虑以下代码段:

If _Singleton("MyApp.exe", 1) = 0 Then
    GUISetState(@SW_SHOW, WinGetHandle("MyApp.exe"))
    WinActivate("MyApp")
    Exit
EndIf

1 个答案:

答案 0 :(得分:0)

WinGetHandle()不会将exe名称作为参数。它需要一个窗口标题。您可以为隐藏窗口指定一个唯一的名称,该名称不会被其他应用程序使用,并使用该名称来获取句柄。

或者您可以尝试在代码_WinAPI_RegisterWindowMessage()here的简化版本中使用here,以便从应用程序的一个实例向另一个可以取消隐藏窗口的实例发送消息