如何使用 python 脚本从其他应用程序关闭弹出窗口 window

How to close a pop-up window from other application with python script

我正在自动化 Aspen Plus 模拟和 post- 使用 Python 处理结果。为了进行放大分析、敏感性研究和解决优化问题;我必须多次迭代 运行 aspen 模拟。

这样,我用win32com.client来管理它。它工作得很好,但有时 aspen 会显示一个弹出窗口 windows 告诉所有许可证都在使用中,中断程序流程:

如果我手动关闭它,程序会继续运行。所以我正在考虑编写一个脚本来自动执行此操作,但我不知道该怎么做。

我试图终止、终止、发送信号到进程。但没有任何效果,因为杀死 AspenPlus.exe 进程,停止程序。

这里是一些示例 powershell 代码,您可以使用它来检查 Aspen 进程是否 运行 以及 window 是否打开然后通过 sendKey 函数发送适当的密钥来关闭它

$isAspenOpen = Get-Process Aspen*
if($isAspenOpen = $null){
    # Aspen is already closed run code here:
    }
else {
     $isAspenOpen = Get-Process AspenPlus*

     # while loop makes sure all Aspen windows are closed before moving on to other code:
         while($isAspenOpen -ne $null){
            Get-Process aspen* | ForEach-Object {$_.CloseMainWindow() | Out-Null }
            sleep 5
            If(($isAspenOpen = Get-Process aspen*) -ne $null){
            Write-Host "Aspen is Open.......Closing Aspen"
                $wshell = new-object -com wscript.shell
                $wshell.AppActivate("Aspen Plus")
                $wshell.Sendkeys("%(Esc)")
            $isAspenOpen = Get-Process Aspen*
            }
        }
        #Aspen has been closed run code here:
    }

感谢 Psychon Solutions!有用!!我从 python 开始使用它,如下所示:

import win32com.client as win32

shell = win32.Dispatch("WScript.Shell")
shell.AppActivate("All licenses are in use")
shell.Sendkeys("%{F4}", 0)

现在我只需要改进代码就可以自动完成任务。