我的桌面上有一个标准的Windows快捷方式,它使用cmd来启动python脚本。我有一个密钥必须启动所述快捷方式(让我们说SHIFT + F7
)。我希望我的脚本在按下HWND
时获取当前窗口的win32gui
(SHIFT + F7
窗口的id)。
我的问题是,当我按SHIFT + F7
时,python脚本将成为当前窗口,因此找到 HWND
。< / p>
我认为可能使用pythonw.exe
代替python.exe
会做某事,但问题仍然存在。
以下是快捷键代码:
C:\Windows\System32\cmd.exe /k "<path to pythonw.exe>" <path to script>
这是脚本本身:
from win32 import win32gui
cur_hwnd = win32gui.GetForegroundWindow()
text = win32gui.GetWindowText(cur_hwnd)
with open(r"<path to output file>", "w") as fp:
fp.write(text)
我应该以不同的方式获取窗口ID?从技术上讲,在后台运行一个长时间运行的python脚本等待SHIFT + F7
,然后记录当前的id,但我宁愿不这样做。
编辑1:
在schortcut中使用<path to pythonw.exe> <path to script>
时,win32gui.GetForegroundWindow()
找到的进程是一个带有空窗口文本的未知进程(有许多此类程序在运行,我不确定它们是什么)。
另外,为了澄清,SHIFT + F7
组合在快捷方式的首选项窗口中设置。