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 Queue模块详细介绍及实例
Dec 27 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
python2.7实现邮件发送功能
Dec 12 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
python3实现名片管理系统(控制台版)
Nov 29 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 Python
Python django中如何使用restful框架
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代码的53条建议
2008/03/27 PHP
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
详解Python的Django框架中的通用视图
2015/05/04 Python
Python 序列的方法总结
2016/10/18 Python
Python 性能优化技巧总结
2016/11/01 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
超简单使用Python换脸实例
2019/03/27 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
中华美德颂演讲稿
2014/05/20 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
十佳党员事迹材料
2014/08/28 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
中秋节主题班会
2015/08/14 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书