有没有一种方法可以模拟 Windows 的 alt-tab 切换窗口功能?

3
我想创建一个程序,它可以切换到例如Discord等应用程序,并向用户输入一条消息。
import time
from pynput.keyboard import Key, Controller
keyboard=Controller()
keyboard.press(Key.alt_l)
keyboard.press(Key.tab)
keyboard.release(Key.tab)
keyboard.release(Key.alt_l)
time.sleep(1)
keyboard.type('this is a test message.')
keyboard.press(Key.enter)

这是我目前用来模拟 alt-tab 切换的代码,但是有可能将焦点切换到指定的程序吗?


3
我不会使用Alt-Tab,因为这取决于打开了哪些窗口以及你之前使用过什么。无论如何,最有可能的是你可以通过窗口的标题或进程找到它。详情请参见 https://dev59.com/ZnI95IYBdhLWcg3w7SlZ。 - Robert
1
这个回答解决了你的问题吗?Python窗口激活 - Robert
@Robert 不,那并没有帮助,不过还是谢谢你的尝试! - sanguine
1个回答

1

您可以使用 pywinauto 实现类似的功能,这是一个模块,可以让您以 Pythonic 的方式与程序的 GUI 进行交互。 例如:

from pywinauto.application import Application
app = Application().start("notepad.exe")

app.UntitledNotepad.menu_select("File->New")

你可以在这里阅读有关pywinauto及其功能的更多信息。

嘿!谢谢,这只适用于Windows应用程序吗?另外,我该如何使用它将焦点设置到Discord应用程序上? - sanguine
嘿,今天我没有时间,但如果你周一仍需要帮助,我会提供一个示例 :-) - nordmanden
1
嘿 @nordmanden,我找到了解决方法,你可以导入一个名为pygetwindow的模块,然后使用win=gw.getWindowsWithTitle('应用程序名称')[0] win.activate(),这样就可以正常工作了! - sanguine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接