如何使Microsoft Edge(和其他Windows应用程序)正常关闭?

时间:2018-07-09 14:48:02

标签: python winapi

我正在用Python编写一些JS基准测试自动化,需要启动并停止Microsoft Edge。我已经设法使Edge与subprocess.Popen()正常运行,但是就我的一生而言,我无法让它彻底停止运行-就此而言,也无法停止运行任何其他Windows应用程序。

无论我发送到MicrosoftEdge.exe或其他应用程序的信号是什么,都会发生以下两种情况之一:什么都没有,或者应用程序被强制杀死。我已经尝试过WM_CLOSECTRL_C_EVENTSIGINT等。基本问题是,我发送什么信号使用户单击“关闭”按钮? (顺便说一下,我知道Edge是UWP应用。)

在这里变得更加有趣。我试图通过致电taskkill /im instead解决此问题。它几乎可以在所有Windows应用程序上正常工作(例如,如果打开的写字板中带有一些文本,则会显示保存提示),但对Edge绝对没有任何作用。我即将开始撕头发:)

有人能对此有所启发吗?我宁愿保持这种简单,但我可能不得不求助于使用Selenium之类的东西。

1 个答案:

答案 0 :(得分:0)

尝试:

SendMessage (or PostMessage) (hEdgeTopLevelWnd, WM_SYSCOMMAND, SC_CLOSE, 0);

这应该使Edge认为用户已单击“关闭”按钮。但对您来说,@ IInspectable。

但是您如何掌握hEdgeTopLevelWnd?您需要确保获得正确的选择-在UWP应用使用的(最小)窗口层次结构中有一些。