用python发送一些密钥到非活动窗口

我试着发送一些密钥到不活动的窗口/过程/程序(win32 / 64)使用python。 已经阅读了关于pywinauto和SendKeys,但他们都在发送密钥之前激活窗口。

有没有办法使用不活动窗口而不激活它?

如果有人发布简单的示例/代码段,这将是非常好的。

谢谢。

这是一个很老的帖子,但是这里没有答案,我正在寻找类似的东西,而且我花了6个小时才通过Stackoverflow,最后只读了所有的C文档,因为它更有用。

<python> #you will need the win32 libraries for this snippet of code to work, Links below import win32gui import win32con import win32api from time import sleep #[hwnd] No matter what people tell you, this is the handle meaning unique ID, #["Notepad"] This is the application main/parent name, an easy way to check for examples is in Task Manager #["test - Notepad"] This is the application sub/child name, an easy way to check for examples is in Task Manager clicking dropdown arrow #hwndMain = win32gui.FindWindow("Notepad", "test - Notepad") this returns the main/parent Unique ID hwndMain = win32gui.FindWindow("Notepad", "test - Notepad") #["hwndMain"] this is the main/parent Unique ID used to get the sub/child Unique ID #[win32con.GW_CHILD] I havent tested it full, but this DOES get a sub/child Unique ID, if there are multiple you'd have too loop through it, or look for other documention, or i may edit this at some point ;) #hwndChild = win32gui.GetWindow(hwndMain, win32con.GW_CHILD) this returns the sub/child Unique ID hwndChild = win32gui.GetWindow(hwndMain, win32con.GW_CHILD) #print(hwndMain) #you can use this to see main/parent Unique ID #print(hwndChild) #you can use this to see sub/child Unique ID #While(True) Will always run and continue to run indefinitely while(True): #[hwndChild] this is the Unique ID of the sub/child application/proccess #[win32con.WM_CHAR] This sets what PostMessage Expects for input theres KeyDown and KeyUp as well #[0x44] hex code for D #[0]No clue, good luck! #temp = win32api.PostMessage(hwndChild, win32con.WM_CHAR, 0x44, 0) returns key sent temp = win32api.PostMessage(hwndChild, win32con.WM_CHAR, 0x44, 0) #print(temp) prints the returned value of temp, into the console print(temp) #sleep(1) this waits 1 second before looping through again sleep(1) </python> 

我已经看过所有的帖子来使用

 hwndEdit = win32gui.FindWindowEx(hwndMain, hwndChild, "Edit", "test - Notepad"); 

但我永远不知道。 除此之外,微软网站上的所有文档都是不一样的,所以我已经添加了自己的理解。

这应该让你开始,应该有助于其他人。 如果其他人有修改让我知道。

Win32 Python库