1、准备第三方包:
py -3.6 -m pip install win32gui
py -3.6 -m pip install Pywin32
py -3.6 -m pip install pyHook-1.5.1-cp36-cp36m-win_amd64.whl (这个文件是在https://www.lfd.uci.edu/~gohlke/pythonlibs/#genshi 下可找到)请使用这种方式安装,就不用去安装那些依赖环境了,比较方便
注意安装时,如果遇到
是因为版本有问题
py -3.6 -m pip install PyUserInput
按照以上的顺序进行安装
2、代码
# encodding = utf-8 import os import time import win32gui import win32api import win32con from pykeyboard import PyKeyboard from ctypes import * def QQ(qq, pwd): # 运行QQ os.system('"C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"') # 注意这里的写法,当路径有空格的时候,system会默认为多个参数,所以要用双引号,代表这个路径仅仅代表一个参数 time.sleep(3) # 获取QQ的窗口句柄 # 参数1是类名,参数2是QQ软件的标题 a = win32gui.FindWindow(None, "QQ") # 获取QQ登录窗口的位置 loginid = win32gui.GetWindowPlacement(a) # 定义一个键盘对象 k = PyKeyboard() # 把鼠标放置到登陆框的输入处 print(loginid[4][0]) # 这是窗口的横坐标 712 print(loginid[4][1]) # 这是窗口的纵坐标 305 windll.user32.SetCursorPos(loginid[4][0] + 238, loginid[4][1] + 247) # 让鼠标能找到登录的输入框,这是相当坐标, # windll.user32.SetCursorPos(950, 552) # 这个方法是写死的,这是实际的坐标:950 = 712+238(横) 552 = 305+247(纵) # 按下鼠标再释放 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) # press mouse win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) # release mouse time.sleep(2) # 输入用户名 k.type_string(qq) time.sleep(0.2) # 按下tab,切换到输入密码的地方 win32api.keybd_event(9, 0, 0, 0) win32api.keybd_event(9, 0, win32con.KEYEVENTF_KEYUP, 0) # 输入密码 k.type_string(pwd) # 按下回车 win32api.keybd_event(13, 0, 0, 0) win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0) if __name__ == "__main__": QQ('xxxxxx', 'xxxxxxx')
3、获取当前鼠标的坐标
首先需要安装:py -3.6 -m pip install Pyautogui
然后写一个脚本,代码如下
import os,time import pyautogui as pag try: while True: print("Press Ctrl-C to end") x,y = pag.position() # 返回鼠标的坐标 posStr="Position:"+str(x).rjust(4)+','+str(y).rjust(4) print (posStr) # 打印坐标 time.sleep(0.2) os.system('cls') # 清楚屏幕 except KeyboardInterrupt: print('end....')
最后开启服务,就可以实时获取当前鼠标的坐标了
通过这个就可以找到登录QQ的输入框,上边的950(横坐标) 552(纵坐标)也就是这样来的,通过计算既可以获得相对坐标 238,247