Python模拟键盘输入自动登录TGP


Posted in Python onNovember 27, 2020
#-*- coding: utf-8 -*-
import win32api,win32gui, win32con
import os
import time
#os.startfile('D:\\Program Files\\Tencent\\TGP\\tgp_daemon.exe')
#time.sleep(5)
label = u"腾讯游戏平台"
#根据窗口名获取窗口句柄,
h = win32gui.FindWindow('Edit','')
#Ex = win32gui.FindWindowEx(h,None,None,None)
#print(h)
#print(Ex)
win32gui.SetForegroundWindow(h)
#根据窗口句柄使窗口位于焦点位置
time.sleep(3)
UserNum = "your id"
PassWord = "your password"

lowercase = dict(zip(range(97,123),[[x,0] for x in range(65,91)]))
#小写字母对应的ascii码为97~122,对应的键盘值为65~90
uppercase = dict(zip(range(65,91),[[x,1] for x in range(65,91)]))
#大写字母对应的ascii码为65~91,对应的键盘值为小写字母的键盘值加shit
number = dict(zip(range(48,58), [[x,0] for x in range(48,58)]))
#print number
#0~9数字对应的asicc编码为48~57, 对应的键盘值为48~58
symbol01 = {32: [32, 0], 33: [49, 1], 34: [222, 1], 35: [51, 1], 36: [52, 1], 37: [53, 1], 38: [55, 1], 39: [222, 0], 40: [57, 1], 41: [48, 1], 42: [56, 1], 43: [187, 1], 44: [188, 0], 45: [189, 0], 46: [190, 0], 47: [191, 0]}
symbol02 = {64: [50, 1], 58: [186, 1], 59: [186, 0], 60: [188, 1], 61: [187, 0], 62: [190, 1], 63: [191, 1]}
symbol03 = {96: [192, 0], 91: [219, 0], 92: [220, 1], 93: [221, 0], 94: [54, 1], 95: [189, 1]}
symbol04 = {123: [219, 1], 124: [220, 1], 125: [221, 1], 126: [192, 1]}
#print symbol04
passworddict = {}
passworddict = dict(lowercase.items()+uppercase.items()+number.items()+symbol01.items()+symbol02.items()+symbol03.items()+symbol04.items())
#print passworddict

for i in range(0,1):#模拟输入tab键,选中账号输入框
  win32api.keybd_event(9,0,0,0)   
  win32api.keybd_event(9,0,win32con.KEYEVENTF_KEYUP,0)
  time.sleep(0.2)
time.sleep(0.5)


for i in range(0,12):#删除输入框中的字符
  win32api.keybd_event(8,0,0,0)
  win32api.keybd_event(8,0,win32con.KEYEVENTF_KEYUP,0)
  time.sleep(0.2)

 
for i in range(0,len(UserNum)):
  key = ord(UserNum[i])
  skey = int(passworddict[key][0])
  if passworddict[key][1] == 1:
    win32api.keybd_event(16,0,0,0) 
    #获取账号中对应字符中的对应ascii编码
    win32api.keybd_event(skey,0,0,0)
    win32api.keybd_event(16,0,win32con.KEYEVENTF_KEYUP,0)
    win32api.keybd_event(skey,0,win32con.KEYEVENTF_KEYUP,0)
  else:
    #win32api.keybd_event(16,0,0,0) 
    #获取账号中对应字符中的对应ascii编码
    win32api.keybd_event(skey,0,0,0)
    #win32api.keybd_event(16,0,win32con.KEYEVENTF_KEYUP,0)
    win32api.keybd_event(skey,0,win32con.KEYEVENTF_KEYUP,0)

  time.sleep(0.2)
  #模拟账号中每个字符的输入,每次输入后睡眠0.2s
time.sleep(0.5)
win32api.keybd_event(9,0,0,0)
win32api.keybd_event(9,0,win32con.KEYEVENTF_KEYUP,0)
#再次模拟tab键输入,选中密码输入框
time.sleep(0.5)
for i in range(0,len(PassWord)):
  key = ord(PassWord[i])
  skey = int(passworddict[key][0])
  if passworddict[key][1] == 1:
    win32api.keybd_event(16,0,0,0)
    #获取账号中对应字符中的对应ascii编码
    win32api.keybd_event(skey,0,0,0)
    win32api.keybd_event(16,0,win32con.KEYEVENTF_KEYUP,0)
    win32api.keybd_event(skey,0,win32con.KEYEVENTF_KEYUP,0)
  else:
    #win32api.keybd_event(16,0,0,0)
    #获取账号中对应字符中的对应ascii编码
    win32api.keybd_event(skey,0,0,0)
    #win32api.keybd_event(16,0,win32con.KEYEVENTF_KEYUP,0)
    win32api.keybd_event(skey,0,win32con.KEYEVENTF_KEYUP,0)
    
  time.sleep(0.2)

  '''
  if ord(PassWord[i])>=97 and ord(PassWord[i])<=122:
    key = ord(PassWord[i])-32
  elif ord(PassWord[i]) == 64:
    win32api.keybd_event(16,0,0,0)
    win32api.keybd_event(50,0,0,0)
    win32api.keybd_event(16,0,win32con.KEYEVENTF_KEYUP,0)
    win32api.keybd_event(50,0,win32con.KEYEVENTF_KEYUP,0)
    continue
  else:
    key = ord(PassWord[i])
  win32api.keybd_event(key,0,0,0)
  win32api.keybd_event(key,0,win32con.KEYEVENTF_KEYUP,0)
  time.sleep(0.2)
  '''
  
win32api.keybd_event(13,0,0,0)
win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP)
#模拟输入enter键,确认登陆

以上就是Python模拟键盘输入自动登录TGP的详细内容,更多关于python 模拟键盘输入的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
Jan 16 Python
详解Python3中字符串中的数字提取方法
Jan 14 Python
Python Requests库基本用法示例
Aug 20 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
python中正则表达式 re.findall 用法
Oct 23 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
python+rsync精确同步指定格式文件
Aug 29 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
Python 中数组和数字相乘时的注意事项说明
May 10 Python
python操作toml文件的示例代码
Nov 27 #Python
Python GUI库Tkiner使用方法代码示例
Nov 27 #Python
Python爬虫爬取有道实现翻译功能
Nov 27 #Python
python爬虫中采集中遇到的问题整理
Nov 27 #Python
python 用opencv实现图像修复和图像金字塔
Nov 27 #Python
Python函数调用追踪实现代码
Nov 27 #Python
Numpy中np.max的用法及np.maximum区别
Nov 27 #Python
You might like
PHP文本数据库的搜索方法
2006/10/09 PHP
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
PHP中MD5函数使用实例代码
2008/06/07 PHP
PHP写杨辉三角实例代码
2011/07/17 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
python多线程编程中的join函数使用心得
2014/09/02 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
一年级班主任工作总结2014
2014/11/08 职场文书
2014年学前班工作总结
2014/12/08 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
校运会通讯稿
2015/07/18 职场文书
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
vue+echarts实现多条折线图
2022/03/21 Vue.js