【问题标题】:How can I switch to an external application and forth?如何切换到外部应用程序?
【发布时间】:2016-05-02 12:11:28
【问题描述】:

我们有一个用 PyQt 编写的桌面应用程序(我们称之为 OUR),它为现有的专有 MS Windows 应用程序(名为 THEIR)添加了补充功能。他们全屏运行。当外部(硬件)事件发生时,我们希望切换到我们的,然后以编程方式返回到他们的。就像我们要模拟 OUR 中的组合键 ALT-TAB 一样。

我们如何从 OUR 切换到 THEIR?我们如何在事件中从 THEIR 切换到 OUR - 例如当计时器超时时?

【问题讨论】:

  • 他们已经打开了吗?
  • 哦,你在运行什么操作系统?
  • This question 本质上是重复的,尽管请随意详细说明。可能有更好的副本。你必须遍历窗口列表,并手动切换窗口。
  • 我们使用的是 Microsoft Windows。

标签: python windows qt qt4 pyqt4


【解决方案1】:

您对他们的程序和硬件事件有多少控制权?通常,在另一个应用程序中提升窗口的唯一方法是通过窗口管理器获取它们的句柄并提升它们。该方法将取决于您使用的操作系统和窗口管理器。在windows上,你可以使用pywin32 api。

一种方法是创建一个小型守护进程,用作套接字服务器或 xmlrpc 服务器(python 有简单的方法来实现这两者)。当 OUR 或 THEIR 想要打开另一个窗口时,他们会向守护程序发送一条消息,它会打开相应的窗口。守护进程还可以监视操作系统的事件并自行引发窗口。

【讨论】:

  • 谢谢,布伦丹!尽管同时我们的项目采取了另一个方向,但对于这里的问题,通过操作系统请求的句柄访问其他窗口的方法似乎很有希望!我简要地检查了pywin32,但我没有找到它的详细(或任何)文档(也许我太简短了)。我有点担心,为了实现这一点,我需要深入了解 win32 API,而我不知道。幸运的是,这个功能现在被取消了。
猜你喜欢
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多