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支持断点续传的多线程下载示例
Jan 16 Python
python中的代码编码格式转换问题
Jun 10 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
Python实现二维有序数组查找的方法
Apr 27 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
Jun 23 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 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
php中explode函数用法分析
2014/11/15 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
PHP精确计算功能示例
2016/11/29 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
教育实习生的自我评价分享
2013/11/21 职场文书
班组长的岗位职责
2013/12/09 职场文书
教师党员承诺书
2014/03/25 职场文书
竞聘书格式及范文
2014/03/31 职场文书
小学生春游活动方案
2014/08/20 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript