我需要从一个我知道标题的窗口输入一个PID。。。在
它是一个安装程序,似乎改变了重要的凭证时,第一个“下一步”按钮按在我的代码。。。在
我认为这是因为窗口淡出,然后再次淡入,但当我单击后退按钮并再次单击下一步时,它不会再这样做了。。。在
第一个“下一步”按钮,我第一次点击它,上面有一个护盾,所以我想它可能和UAC有关。。。在
我用这个代码发送一个输入键盘按下窗口:
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
def setwindowfocus(windowname): # can be the window title or the windows PID
shell.AppActivate(windowname)
def sendkeypresstowindow(windowname, key):
setwindowfocus(windowname)
shell.SendKeys(key)
time.sleep(0.1)
sendkeypresstowindow(u'Some Known Window Title', '{ENTER}')
time.sleep(5) # Wait for next window
sendkeypresstowindow(u'Some Known Window Title', '{ENTER}')
time.sleep(5) # Wait for next window
shell.AppActivate()
也可以使用一个pid,所以我想知道如果我所拥有的唯一信息是windows标题。。。在
我尝试过使用pywinauto并遇到了同样的问题,除了许多在pywinauto中不应该访问的成员,而且它对于我需要做什么来使用它非常不敏感,所以我宁愿在代码清理干净之前避开它。。。在
我还注意到窗口的句柄发生了变化,所以如果我能从窗口标题中获取句柄,然后从句柄中获取PID,也能正常工作。。。在
如果有人能找到答案或更好的解决方案,我将不胜感激
提前谢谢大家
GetWindowThreadProcessId函数似乎可以从HWND获取PID。而FindWindow是使用窗口标题查找窗口的常用方法。所以下面得到一个
我想知道你是否应该尝试使用UI Automation,尽管如果你正在尝试驱动UI。我没有试图通过Python使用它。在
相关问题 更多 >
编程相关推荐