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

时间:2019-04-25 11:33:51

标签: python aspen

我正在自动进行Aspen Plus模拟以及使用Python对结果进行后处理。为了进行放大分析,敏感性研究和解决优化问题;我必须重复几次运行aspen仿真。

这样,我使用win32com.client对其进行管理。效果很好,但有时aspen会显示一个弹出窗口,告知所有许可证都在使用中,从而中断程序流:

issue

如果我手动关闭它,程序将继续工作。因此,我正在考虑编写一个脚本来自动执行此操作,但是我不知道如何执行此操作。

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

2 个答案:

答案 0 :(得分:2)

这里有一些示例powershell代码,您可以使用它们来检查Aspen进程是否正在运行以及窗口是否已打开,然后通过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:
    }

答案 1 :(得分:1)

感谢Psychon解决方案!有用!!我从python使用它,如下所示:

let val = await socketclass.emitMsg();

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