播英 2022-01-11 16:28 采纳率: 50%
浏览 39
已结题

pyautogui 截屏点击,但程序没有加载好,页面没有出来怎么办?除了延时方法


#比如自动启动QQ,匹配到密码输入位置,然后点击,输入密码。但是QQ页面没有加载好
import os
import pyautogui
path="D:\Tencent\QQ\Bin\QQScLauncher.exe"
os.startfile(path)
location=pyautogui.locateOnScreen(image='pswd.png')
print(location)
x,y=pyautogui.center(location)
print('center()',x,y)
pyautogui.click(x=x,y=y,clicks=1,button='left')
pyautogui.typewrite("pswd")
#怎样让它循环,直到位置锁定成功?

  • 写回答

4条回答 默认 最新

  • 关注

    通过获取窗口句柄的方式获取qq状态,下面示例程序,程序约在窗口最前面,拿到的句柄越靠前,能拿到句柄,切QQ在最前面,说明已经加载好了,你就可以开始下面操作了,如果没有,则继续循环拿下一次句柄,也可以等待个3,500ms再次获取
    获取句柄方式如下

    import win32gui
    
    hwnd_title = {}
    
    
    def get_all_hwnd(hwnd,mouse):
        if (win32gui.IsWindow(hwnd)
                and win32gui.IsWindowEnabled(hwnd)
                and win32gui.IsWindowVisible(hwnd)):
            hwnd_title.update({hwnd:win32gui.GetWindowText(hwnd)})
    
    
    win32gui.EnumWindows(get_all_hwnd,0)
    
    for h,t in hwnd_title.items():
        if t:
            print(h,t)
    

    img

    有帮助请点一下右上角的采纳,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月19日
  • 已采纳回答 1月11日
  • 创建了问题 1月11日