一直用的是狂人版的QQ,也用它附赠的自动登录器很久了,不过最近一版的狂人QQ不知为何取消了自动登录组件。好在QQ2009已经能够同时记住多个号码的密码,虽然要多点击几下,但依然能够实现免输入密码登录。

谁知最近不知道电脑发了什么疯,每隔一段时间,QQ记住的密码就会被清空。我的两个QQ号密码都设置得比较复杂,每次登录要输入两遍密码实在是件痛苦的事情,于是决定自制一个登录器。

在网上找了许久,发现了一个用VBS制作QQ登录脚本的办法:

set WshShell = WScript.CreateObject("WScript.Shell")   '创建一个Shell对象

WshShell.Run "C:\Progra~1\Tencent\QQ\QQ.exe"      '运行QQ,这里改成你自己的QQ目录

WScript.Sleep 3000                      '休眠 3000毫秒(停止3秒)

WshShell.SendKeys "{tab}"

WScript.Sleep 100

WshShell.SendKeys "xxxxxxxxx"      '这里的xxxx用你的QQ号码代替

Wscript.Sleep 100

WshShell.SendKeys "{tab}"

Wscript.Sleep 100

WshShell.SendKeys "********"      '这里的****用你的QQ密码代替

Wscript.Sleep 1000

WshShell.Sendkeys "{enter}"

需要注意的是,文件夹的名如果大于8个字符或者中间有空格,要写成“PROGRA~1”这种形式,就是保留名字的前6个字母然后加上“~1”,这个“~1”代表前6个字母相同文件夹名字的第一个文件夹,例如有2个文件夹中间都有空格:Program Files和Program Filez,那就先以名称排列图标,看最前面的就是~1,第2个就是~2

可是把代码复制过来后,却始终说密码错误。研究半天,终于明白,原来是因为我的密码中有一些特殊字符,而这些特殊字符在VBS中另有其它含义。然而,要想使用这些特殊字符的本来意义,网上却找不到解决的办法——很多网站都说用“\”引导就可以了,例如密码中如果有“$”字符,就要用“\$”代替。可是我试用之后证明在DOS环境中这样不行!

最后经过反复试验,终于把这个问题解决了。而且,我还添加了一个判断过程。也就是如果把这个脚本放在开始-->所有程序-->启动里面,打算在开机的时候自动运行的话,那就可以通过点击确定或者取消来启动或者跳过QQ自动登录。代码如下:

set WshShell = WScript.CreateObject("WScript.Shell")

Dim a

a = MsgBox("自动登录QQ吗?",65,"QQ自动登录")

If a=1 Then

WshShell.Run "D:\Progra~1\Tencent\QQ2009\Bin\QQ.exe"

WScript.Sleep 11000

WshShell.SendKeys "+{tab}"

WScript.Sleep 300

WshShell.SendKeys "xxxxxxx{tab}"

Wscript.Sleep 300

WshShell.SendKeys "****************{tab}"

Wscript.Sleep 300

WshShell.SendKeys "{down 7}{enter}"

Wscript.Sleep 300

WshShell.SendKeys "{tab 4}{enter}"

Wscript.Sleep 15000

WshShell.Run "D:\Progra~1\Tencent\QQ2009\Bin\QQ.exe"

WScript.Sleep 2000

WshShell.SendKeys "+{tab}"

WScript.Sleep 300

WshShell.SendKeys "xxxxxxxxx{tab}"

Wscript.Sleep 300

WshShell.SendKeys "****************{tab}"

Wscript.Sleep 300

WshShell.SendKeys "{down 7}{enter}"

Wscript.Sleep 300

WshShell.SendKeys "{tab 4}{enter}"

End If

注释:

如果你不希望出现提示对话框,只要把第2、3、4行和最后一行删除掉即可。

第5行,我的QQ启动目录在D:\Program Files\Tencent中。

第6行,由于刚开机时可能同时要加载许多程序,QQ的启动过程可能比较慢,需要等待11秒钟确保登录界面出现。而且我发现,狂人版的QQ在启动过程中很容易受到干扰而失去当前登录窗口,所以这里的等待时间应尽可能足够长以确保自动登录时没有其它程序抢走当前窗口。

第7行,狂人版QQ启动后,除非是第一次运行QQ,否则光标位置并不在输入号码的地方,而是输入密码的地方,所以需要发送Shift+Tab组合键使得光标出现在输入号码的框中。

对于需要与Shift、Ctrl、Alt三个控制键组合的按键,SendKeys使用特殊字符来表示:+、^、%,另外对于一些不会生成字符的控制功能按键,则需要使用大括号括起来按键的名称。下面是这些按键和表示法的对照:

按键                代码

BACKSPACE     {BACKSPACE}, {BS}, 或 {BKSP}

BREAK       {BREAK}

CAPS LOCK     {CAPSLOCK}

DEL or Delete   {Delete} 或 {DEL}

DOWN ARROW     {DOWN}

END        {END}

ENTER       {ENTER}或 ~

ESC        {ESC}

HELP        {HELP}

HOME        {HOME}

INS or Insert   {Insert} 或 {INS}

LEFT ARROW     {LEFT}

NUM LOCK      {NUMLOCK}

PAGE DOWN     {PGDN}

PAGE UP      {PGUP}

PRINT SCREEN    {PRTSC}

RIGHT ARROW    {RIGHT}

SCROLL LOCK    {SCROLLLOCK}

TAB        {TAB}

UP ARROW      {UP}

F1         {F1}

……

F10         {F10}

第8行,光标发生位置变动,所以延时0.3秒,确保光标成功转移。以下同。

第9行,输入完号码后还需要按一下Tab键使得光标跳转到密码输入框中。这里我考虑到数字键和Tab键的点击都是在同一个框内,所以直接放在了一起,节约时间。

第11行,输入密码。注意,如果你的密码中有“$”、“(”、“)”、“*”、“+”、“_”、“[”、“?”、“\”、“^”、“{”或者“|”符号,就必须用{ }框起来,例如有“[”,就得写成“{[}”;如果有“{”,就得写成“{{}”;如果密码是“a*2+3”,就得写成“a{*}2{+}3”。其余类推。

注意最后的{Tab},如果你只有一个QQ号,而且每次都是正常方式登录,那么你可以将{Tab}改成{Enter},然后删除后面的行就行了。

第13行,由于我每次都希望能以隐身方式登录,所以在这里添加了按向下键选取隐身模式的过程,选中隐身模式后需要发送回车键才能选中。如果需要发送多个重复的单字母按键,不必重复输入该字母,SendKeys允许使用简化格式进行描述,使用格式为“{按键 数字}”。例如要发送10个字母“x”,则输入“WshShell.SendKeys "{x 10}"”即可,所以这里我用了7个向下键。

第15行,这里的4个Tab是用于将鼠标点击焦点移动到登录窗口中的“登录”按钮上,最后发送回车开始登录过程。

第17行,我需要登录两个QQ号,所以在这里需要等待至少15秒,确保第一个号码完全登录。如果你的第一个QQ号还没有登录完毕就出现了第二个登录窗口,那第二个QQ登录一定会失败,需要增大这里的数值。

后面的过程就和前面的一样了,不再赘述。编辑好这段代码之后,新建一个文本文件,将代码复制进去,然后将文件改名为AutoQQ.VBS,双击就可以看到效果了。

补充说明:

1)双击运行vbs文件后,不能点击鼠标,也不能敲击键盘,必须等到QQ号启动结束才能做其它事情,否则登录过程很可能会失败。

2)运行此脚本时不能有其它抢占最顶端窗口的程序,例如QQ记牌器之类,否则WScript会把字符发送到错误的窗口中;也不要设置收到QQ消息就自动弹出窗口,否则后续QQ号登录很可能会被干扰。

3)这种方法自动登录QQ,密码是明文形式存放在vbs文件中的,所以只适用于私人电脑,如果多人使用同一电脑就不安全了。也许你可以去网上找一个叫做“VBS2EXE”的软件来把脚本文件转换成exe文件,但是我试验了多次,这个软件没法在我的机器上运行。

(本人原创作品,转载请注明出自玄鸟翩翩)

python 游戏脚本 vbs_用VBScript制作QQ自动登录的脚本代码相关推荐

  1. python打开qq并登录_使用Python进行QQ批量登录的实例代码

    具体代码如下所示: #coding=utf-8 __author__ = 'Eagle' import os import time import win32gui import win32api i ...

  2. Python第三方库巧用,制作图片验证码只需三行代码

    现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 - 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 上面这些图片 ...

  3. 利用phantomjs模拟QQ自动登录

    之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写. 考 ...

  4. 求QQ自动登录解决方案

    QQ2010现在不支持命令行登录了,还有如果是模拟鼠标键盘的话,如何确定输入框的位置 先FindWindow找到登陆框,GetWindowRect就可以计算机了顶到有人帮忙解决为止 没人知道吗?现在有 ...

  5. QQ自动强制加好友代码html

    鲜为人知的QQ自动强制加好友代码 是的,你也许见过强行聊天的代码: tencent://Message/?Uin=574201314&websiteName=www.oicqzone.com& ...

  6. 转载:QQ自动强制加好友代码html

    鲜为人知的QQ自动强制加好友代码 是的,你也许见过强行聊天的代码: tencent://Message/?Uin=574201314&websiteName=www.oicqzone.com& ...

  7. QQ自动登录/QQ登录器/程序源代码/VS2010/VS2012/VC/MFC

    学习豪迪,研究了一下QQ自动登录怎么写. 以前QQ登录的介面先用SPY++来找到QQ登陆框,然后再把密码copy进去,就可以了. 现在的QQ登录介面这招不行,用SPY++是找不到任何ID的. 怎办呢? ...

  8. 想去看演唱却总是抢不到票?教你用Python制作一个自动抢票脚本

    前言 嗨喽!大家好,这里是魔王!! 大麦网,是中国综合类现场娱乐票务营销平台,业务覆盖演唱会. 话剧.音乐剧.体育赛事等领域. 但是因为票数有限,还有黄牛们不能丢了饭碗,所以导致了,很多人都抢不到票 ...

  9. python打开qq并登录_Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法...

    本文实例讲述了Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法.分享给大家供大家参考,具体如下: 每天打开电脑第一件事应该就是打开人人刷一下,然后登上QQ.每次都这样很麻烦,于是写了一个 ...

最新文章

  1. 关于Modernizr的使用
  2. Java Spring ClassPathXmlApplicationContext是如何判断容器内包含某个Bean的
  3. leetcode 73 矩阵置零 C++ 两种解法
  4. 80%的软件环境管理问题,根因都在这里
  5. Spring Boot + JPA + Freemarker 实现后端分页 完整示例
  6. mysql定时任务 分钟_mysql定时任务
  7. percona mysql 同步_Percona MySQL5.6 半同步复制
  8. 谈谈spring-boot不同包结构下,同样的类名冲突导致服务启动失败解决方案
  9. torch.nn模块介绍
  10. 酒店小程序线上营销解决方案-思途智旅
  11. 谷歌浏览器添加插件——json
  12. 数学笔记25——弧长和曲面面积
  13. 网易数帆王佰平:我的 Envoy Maintainer 之路
  14. Dubbo 使用 kryo 序列化
  15. ML之XGBoost:《XGBoost: A Scalable Tree Boosting System》的翻译与解读
  16. Neat Reader安装使用
  17. 工商管理如何利用计算机思维,论述工商管理人才素质的重要性
  18. linux系统能看抖音吗,字节跳动应该推出抖音/TikTok for Linux版本客户端
  19. 读书6 ---《万历十五年》
  20. echarts中formatter修改鼠标悬浮事件信息操作、echarts地图块、散点区分触发点击事件 只触发散点问题详解

热门文章

  1. [Embeding-1]Efficient Estimation of Word Representations in Vector Space 译文
  2. FPN(Feature Pyramid Network)多尺度目标检测方案
  3. 有关identity的小技巧
  4. delphi中处理数据类型错误的方法
  5. Delphi的单元文件详解
  6. markdown编辑模式添加除水印图片方法
  7. 数据结构排序、查找算法
  8. Java中static关键字有什么用?
  9. Cookie,Session,Token
  10. Altium Designer -- 查看板子厚度