小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
欢迎和猫妹一起,趣味学Python。
今日主题
你用过微信吗?
相信很多小伙伴和猫妹一样,肯定用过啊!
过去三年,咱在家上了不少网课,上网课,经常需要微信联络老师啊!
那你用过qq没?
啥是qq?猫妹没有用过,但是猫爸用过。
展开全文
他说他刚上大学那个时候,qq很流行。
那个时候,居然都可以免费申请到7位的qq号(要看运气),他居然还买过8位的qq号,当时9位号可以很容易申请到的。
当时网速差啊,qq要登录服务器,9位经常登录不上,8位可以,所以这是他买8位qq号的原因。
自从智能手机崛起后,qq的风头被微信抢夺,但很多人之前的qq并没有废弃,只是频率使用频率大大降低而已,那里毕竟记录着很多人的青春啊。
比如qq邮箱,用的就是qq号,邮箱还是偶尔会用到的。
qq在电脑上登录起来有点繁琐,毕竟不经常登录的话,有时需要手机扫码,而手机不可能同时登录多个qq号吧?
要么需要绑定手机发送验证码辅助验证,也有点繁琐。
如果有个程序,可以自动从pc上登录就好了。
经常登录的话,估计不需要手机辅助验证。
原理
在网上查询了下,有大佬已经把程序分享出来了,原理就是用Python去模拟鼠标和键盘的操作,将用户名和密码输入qq登录框中,使其登录成功。
相关程序,猫妹都放在次条了,需要的朋友可以看下。
关键代码,猫妹和大家一起学习下:
13行:
os模块中的system()函数可以方便地运行其他程序或者脚本。
语法如下:os.system(command),其参数含义如下所示:
command 要执行的命令,相当于在Windows的cmd窗口中输入的命令。
如果要向程序或者脚本传递参数,可以使用空格分隔程序及多个参数。
17行:
使用Python时,有时需会要操作到系统窗口的一些东西。
win32gui.Findwindow(param1,param2)方法查找窗口句柄参数及对应参数值。param1需要传入窗口的类名,param2需要传入窗口的标题。
20行:
窗口的位置。
26行:
定义一个键盘对象,用于输入相关信息。
34~35行:
在qq输入框中,模拟鼠标点击,准备输入信息。
40行:
输入qq号。
43~44行:
模拟按下TAB键,切换到输入密码框。
46行:
模拟输入密码。
48~49行:
模拟回车按键,登录。
pywin32库
Python 没有自带访问 windows 系统 API 的库的,需要下载 pywin32,pywin32 是一个第三方模块库,主要的作用是方便 python 开发者快速调用 windows API 的一个模块库。
它直接包装了几乎所有的 Windows API,可以方便地从 Python 直接调用,该模块另一大主要功能是通过 Python 进行 COM 编程。
win32api :模块内定义了常用的一些 API函数,例如:MessageBox
win32gui :模块内定义了一些有关 图形操作的API,例如:FindWindow
win32con :模块内定义了 windows API 内的宏,即 宏常量。
安装目录Python38\Lib\site-packages下有个PyWin32.chm帮助文件,信息量很大。
可以在网上查询到更详细的信息:
keybd_event(bVk, bScan, dwFlags, dwExtraInfo)
第一个参数:虚拟键码(键盘键码对照表见附录);
第二个参数:硬件扫描码,一般设置为0即可;
第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则该键被按下,也可设置为0即可,如果值为KEYEVENTF_KEYUP则该按键被释放;
第四个参数:定义与击键相关的附加的32位值,一般设置为0即可。
最终效果
猫爸新建了一个记事本文件my_qq.txt,用上述截图程序从这个my_qq.txt中读取信息后,逐一登录。
第一行为qq的可执行文件路径
第二行为qq登录后的延时
第三行~第N行为qq号和密码,之间用TAB键分割
每次运行下脚本,就可以自动登录这些qq号了。
以上程序,感兴趣的小伙伴,可以一起讨论学习哦!
用Python模拟鼠标和键盘操作,这个在很多场合挺有用的。
你觉得呢?
好了,我们今天就学到这里吧!
如果遇到什么问题,咱们多多交流,共同解决。
我是猫妹,咱们下次见!