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脚本获取操作系统版本信息
Dec 17 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
python中open函数的基本用法示例
Sep 07 Python
Python SSL证书验证问题解决方案
Jan 13 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 Python
Pycharm新手使用教程(图文详解)
Sep 17 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简单复制文件的方法
2016/05/09 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
python通过索引遍历列表的方法
2015/05/04 Python
python实现计算倒数的方法
2015/07/11 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
Python2与Python3的区别实例总结
2019/04/17 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
基于python调用psutil模块过程解析
2019/12/20 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
Foreo国际站:Foreo International
2018/10/29 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
Python中tkinter的用户登录管理的实现
2021/04/22 Python