繁体   English   中英

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

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

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

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

问题

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

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

这是一些示例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:
    }

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

import win32com.client as win32

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM