Python模拟键盘输入自动登录TGP
作者:DamonGuo 发布时间:2021-11-04 11:27:22
标签:python,模拟,键盘,输入,TGP
#-*- 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键,确认登陆
来源:https://github.com/DamonGuo/TGPAutoLgin
0
投稿
猜你喜欢
- 如IP为192.168.1.111现要截取第二个.之前的值,得到结果192.168,很多网站都只显示前面2个值 &nb
- 前言最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动
- 用window.open打开的窗口中,有时候session变量会丢掉,给asp编程带来的一定的麻烦。用参数传递解决它:<DIV&nbs
- 代码如下:--新增表字段 ALTER procedure [dbo].[sp_Web_TableFiled_Insert] (
- 对于中小型个人、企业网站来说,MySQL数据库或许是目前数据库的最完美实施解决方案了。在不变更服务器硬件的前提下,一个经过良好架构,优化后的
- 今天群上面同志们在讨论css3内发光效果,自己也就研究一下,写了个效果出来,涉及css3投影,渐变,蒙版,伪类等知识点,现在写下设计思路,仅
- 1. 目的在 C/C++ 开发中使用了第三方库,具体说是 .a, .lib, .dll 等文件,想通过 Python 查询出这些文件中的版本
- 以下示例显示如何在 XPath 查询中指定轴。这些示例中的 XPath 查询都在 SampleSchema1.xml 中所包含的映射架构上指
- 前言Python是C语言实现的,因此Python对象在C语言层面应该是一个结构体 ,组织对象占用的内存。 不同类型的对象,数据及行为均可能不
- Sjoerd Visscher 发现了一个简洁的 方法 让样式在 IE 中作用到未知的元素上——仅需 JS 创建此未知元素即可:docume
- datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1.da
- 本文全部操作均在windows环境下安装 PythonPython是一种跨平台的计算机程序设计语言,它可以运行在Windows、Mac和各种
- python实现阶乘-基础版本什么是阶乘呢?在数学运算中n!表示n的阶乘,用数学公式表示为:n!=1*2*3*....*(n-1)*n下面提
- 这篇文章主要介绍了Python实现word2Vec model过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 在注册或购物车结帐的时候,需要用户填入个人资料,这个环节可以简练一下,我们只需客人填入邮政编码,然后就根据这个邮政编码,自动从数据库中取出相
- python在mysql中插入null空值sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (
- <input type=button value=刷新 onclick="window.location.reload()&
- 有的时候,操作大文件,或者取数,要很久,我们给脚本首尾添加一段代码就知道,这段代码整体的大致运行时间了。import timestart =
- 1. 把数字转换成字符串,应用"" + 1,虽然看起来比较丑一点,但事实上这个效率是最高的,性能上来说:("&
- 本文实例讲述了php+js实现的无刷新下载文件功能。分享给大家供大家参考,具体如下:服务器端页面步骤就是,设置头文件参数,然后读入并输出文件