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 httplib,smtplib使用方法
Sep 06 Python
python使用str &amp; repr转换字符串
Oct 13 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
Python中property属性实例解析
Feb 10 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
Python实现多属性排序的方法
Dec 05 Python
python实现QQ邮箱/163邮箱的邮件发送
Jan 22 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
详解Django-restframework 之频率源码分析
Feb 27 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
python实现的Iou与Giou代码
Jan 18 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 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数据库配置文件一般做法分享
2012/07/07 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
yii的CURD操作实例详解
2014/12/04 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
js遍历td tr等html元素
2012/12/13 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
python转换摩斯密码示例
2014/02/16 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
Python中的TCP socket写法示例
2018/05/11 Python
详解python多线程之间的同步(一)
2019/04/03 Python
安装python及pycharm的教程图解
2019/10/10 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
什么是继承
2013/12/07 面试题
医学检验专业自荐信
2014/09/18 职场文书
教师个人师德总结
2015/02/06 职场文书
辩护词格式
2015/05/22 职场文书
借条如何写
2015/05/26 职场文书
导游词之临安白水涧
2019/11/05 职场文书
python文件目录操作之os模块
2021/05/08 Python
Python内置数据结构列表与元组示例详解
2021/08/04 Python