# -*- coding: utf-8 -*-
'''
2019/07/30星期二
继续深入:
pywin32模块: 窗口、鼠标键盘、文件、进程等控制
2019/07/29星期一
深入:
一、多屏定位(已解决,解决方案通过pygetwindow模块窗口控制实现)
TdxW在非主屏最小化关闭 后 重新启动即无法定位。
关注pypi动态
二、自动数据下载(已解决,解决方案通过pygetwindow模块窗口移动实现)
专业财务数据 的 事件判定 后无法定位 开始下载 问题
三、自动退出系统(已解决,同上)
多屏定位问题
'''
#封装函数 自动启动TdxW
import pyautogui
import time
def citdxwqidong(TdxW,N):
pyautogui.FAILSAFE=False #True添加失控保险 鼠标指向左上角
pyautogui.PAUSE=1 #添加暂停时间 作用于每一个pyautogui方法 即方法执行后暂停0.5秒
screenX,screenY = pyautogui.size()
AX,AY = screenX/2,screenY/2
# X1,Y1=AX,AY
X2,Y2=0,-screenY
X3,Y3=-screenX,-screenY
X4,Y4=screenX,-screenY
X5,Y5=-screenX,0
X6,Y6=screenX,0
X7,Y7=-screenX/2,-screenY*2
X8,Y8=screenX/2,-screenY*2
if N==1:
NX,NY=0,0
elif N==2:
NX,NY=X2,Y2
elif N==3:
NX,NY=X3,Y3
elif N==4:
NX,NY=X4,Y4
elif N==5:
NX,NY=X5,Y5
elif N==6:
NX,NY=X6,Y6
elif N==7:
NX,NY=X7,Y7
elif N==8:
NX,NY=X8,Y8
else:
print('屏幕{}不存在,程序退出'.format(str(N)))
exit()
#打开屏幕上主程序
XTdxW,YTdxW=pyautogui.center(pyautogui.locateOnScreen(TdxW,grayscale=True))
pyautogui.click(XTdxW,YTdxW,clicks=2,duration=1,tween=pyautogui.easeInOutQuad)
#登陆主程序
while not(pyautogui.locateOnScreen('TdxW定位图片/101免费精选行情登陆.png',grayscale=True)):
time.sleep(0.01)
pyautogui.click('TdxW定位图片/101免费精选行情登陆.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
pyautogui.press('enter')
while pyautogui.locateOnScreen('TdxW定位图片/102登陆.png',grayscale=True):
pyautogui.click('TdxW定位图片/102登陆.png',clicks=1,duration=0.25,tween=pyautogui.easeInOutQuad)
#循环关闭所有信息、所有广告
#尝试捕捉所有广告X号关闭 (双重保险作用于关闭广告)
while not(pyautogui.locateOnScreen('TdxW定位图片/103广告关闭.png',grayscale=True)):
time.sleep(0.01)
for Box103 in pyautogui.locateAllOnScreen('TdxW定位图片/103广告通达信信息.png',grayscale=True):
try:
pyautogui.click('TdxW定位图片/103广告关闭.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
pyautogui.moveRel(0,-100,duration=0.5,tween=pyautogui.easeInOutQuad)
pyautogui.click('TdxW定位图片/103广告关闭_1.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
except:
time.sleep(0.5)
pass
#尝试去关闭所有信息页面 (103广告关闭_1.png 为选中变色的X号)
while pyautogui.locateOnScreen('TdxW定位图片/103广告关闭.png') or pyautogui.locateOnScreen('TdxW定位图片/103广告关闭_1.png'):
try:
pyautogui.click('TdxW定位图片/103广告关闭.png',clicks=1,duration=0.5,tween=pyautogui.easeInOutQuad)
pyautogui.moveRel(0,-100,duration=0.5,tween=pyautogui.easeInOutQuad)
pyautogui.click('TdxW定位图片/103广告关闭_1.png',clicks=1,duration=0.5,tween=pyautogui.easeInOutQuad)
except:
time.sleep(0.25)
pass
#
# while pyautogui.locateOnScreen('TdxW定位图片/103广告关闭_1.png'):
# try:
# pyautogui.click('TdxW定位图片/103广告关闭.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
# pyautogui.click('TdxW定位图片/103广告关闭_1.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
# except:
# pass
while not(pyautogui.locateOnScreen('TdxW定位图片/105拖动屏中.png') or pyautogui.locateOnScreen('TdxW定位图片/105拖动屏中_MAX.png')):
try:
pyautogui.click('TdxW定位图片/103广告关闭.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
pyautogui.click('TdxW定位图片/103广告关闭_1.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
except:
pass
#最大最小化处理
try:
pyautogui.click('TdxW定位图片/104最大化_取消.png',clicks=1,duration=1,tween=pyautogui.easeInOutQuad)
pyautogui.moveTo('TdxW定位图片/105拖动屏中.png',duration=0.5,tween=pyautogui.easeInOutQuad)
except:
pyautogui.moveTo('TdxW定位图片/105拖动屏中.png',duration=0.5,tween=pyautogui.easeInOutQuad)
#定点A屏正中
pyautogui.dragTo(AX,AY,duration=1,tween=pyautogui.easeInOutQuad)
#拖动至相对定位坐标
pyautogui.drag(int(NX),int(NY),duration=2,tween=pyautogui.easeInOutQuad)
pyautogui.click(clicks=2)
if __name__ == '__main__':
citdxwqidong('TdxW定位图片/08TdxW.png',8)
citdxwqidong('TdxW定位图片/07TdxW.png',7)
citdxwqidong('TdxW定位图片/06TdxW.png',6)
citdxwqidong('TdxW定位图片/05TdxW.png',5)
citdxwqidong('TdxW定位图片/04TdxW.png',4)
citdxwqidong('TdxW定位图片/03TdxW.png',3)
citdxwqidong('TdxW定位图片/02TdxW.png',2)
# citdxwqidong('TdxW定位图片/01TdxW.png',1)
pyautogui应用:CiTdxWQidong.py(自动 启动程序至多屏目标位置)
最新推荐文章于 2024-06-04 11:37:19 发布