我正在尝试使用Pywin32向不活动的tererm窗口发送击键。
This答案引导我编写了以下代码:import win32gui
import win32con
import win32api
hwndMain = win32gui.FindWindow("Tera Term VT", None)
print hwndMain
hwndChild = win32gui.GetWindow(hwndMain, win32con.GW_CHILD)
win32api.PostMessage(hwndChild, win32con.WM_CHAR, 0x5b, 0)
但是:
hwndMain = win32gui.FindWindow("Tera Term VT", None)返回0,找不到窗口。
如果我将"Tera Term VT"更改为"Notepad",我可以整天愉快地向活动记事本窗口发送击键。所以,为什么我拿不到TeraTerm窗户?PyHANDLE = FindWindow(ClassName, WindowName)
ClassName : PyResourceId
Name or atom of window class to find, can be None
WindowName : string
Title of window to find, can be None
那么我怎样才能得到正确的类名呢?
我尝试过Tera Term VT的每一个变体,转义空格:"Tera\ Term\ VT",用单引号将整个括起来:"'Tera Term VT'",但没有任何工作。我甚至尝试过使用进程的名称:"ttermpro.exe",在绝望中将子名称包含在字符串"COM11:115200baud - Tera Term VT"中,但没有任何效果。
有趣的是:import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate("Tera Term VT")
shell.SendKeys("\%i", 0)
工作很好,但是将窗口带到前台,我不希望这样。但是Tera Term VT字符串在这个实例中工作很好。
1144

被折叠的 条评论
为什么被折叠?



