用VBScript制作QQ自动登录的脚本代码

一直用的是狂人版的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文件,但是我试验了多次,这个软件没法在我的机器上运行。

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

(0)

相关推荐

  • Android调用第三方QQ登录代码分享

    本文为大家分享了调用QQ登录的相关代码,希望对大家有帮助,减少项目开发的时间,具体内容如下 1.去QQ开放平台注册帐号(http://open.qq.com/),为应用申请QQ的APP_ID , 并下载相关的jar包,放到工程的lib目录下. 2.在Manifest.xml里注册QQ相关的Activity,代码如下 <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOr

  • ASP.NET实现QQ、微信、新浪微博OAuth2.0授权登录 原创

    不管是腾讯还是新浪,查看他们的API,PHP都是有完整的接口,但对C#支持似乎都不是那么完善,都没有,腾讯是完全没有,新浪是提供第三方的,而且后期还不一定升级,NND,用第三方的动辄就一个类库,各种配置还必须按照他们约定的写,烦而且乱,索性自己写,后期的扩展也容易,看过接口后,开始以为很难,参考了几个源码之后发现也不是那么难,无非是GET或POST请求他们的接口获取返回值之类的,话不多说,这里只提供几个代码共参考,抛砖引玉了... 我这个写法的特点是,用到了Session,使用对象实例化之后调用

  • Android QQ登录界面绘制代码

    先看看效果图: 首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得到焦点并且有输入内容时) ---  这些问题都有一一解决 --- 以下是代码: 布局 fragment_main(问题2) <!-- android:focusable="true" android:focusableInTouchMode="true&qu

  • Python的Flask框架应用程序实现使用QQ账号登录的方法

    Flask-OAuthlib是OAuthlib的Flask扩展实现, 项目地址: https://github.com/lepture/flask-oauthlib 主要特性: 支持OAuth 1.0a, 1.0, 1.1, OAuth2客户端 友好的API(和Flask-OAuth一样) 与Flask直接整合 等等-- Flask-OAuthlib提供了多个开放平台的示例代码,比如Google, Facebook, Twiter, Github, Dropbox, 豆瓣, 微博等,只是暂时没有

  • 高仿Windows Phone QQ登录界面实例代码

    给 TextBox文本框前添加图片 扩展PhoneTextBox:添加一个类"ExtentPhoneTextBox"继承 PhoneTextBox ,在"ExtentPhoneTextBox"类中添加属性项: 复制代码 代码如下: public class ExtentPhoneTextBox : PhoneTextBox    {        /// <summary>        /// 文本框图片属性        /// </summa

  • Yii2中OAuth扩展及QQ互联登录实现方法

    本文实例讲述了Yii2中OAuth扩展及QQ互联登录实现方法.分享给大家供大家参考,具体如下: 复制代码 代码如下: php composer.phar require --prefer-dist yiisoft/yii2-authclient "*" Quick start 快速开始 更改Yii2的配置文件config/main.php,在components中增加如下内容 'components' => [ 'authClientCollection' => [ 'cl

  • jquery仿QQ登录账号选择下拉框效果

    QQ登录的时候,可以选择以前登录过的账户,这个东西也可以在网站登录的时候用到,所以我就想做一个这样的插件:在网上查了很多,没有找到合适自己的,所以决定自动制作一个. 原理就是一个textbox加一个ul模拟下拉框,用font模拟一个下拉按钮. 一.制作静态效果 先用css和html,做出一个应该有的样子.这里这两个我使用的是字体,可以在icomoon网站上面自己制作.用字体的好处是和输入框定位很方便,而且还可以控制大小颜色等,唯一的不足是IE6和IE7由于不支持:before选择器,导致无法显示

  • Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法

    本文实例讲述了Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法.分享给大家供大家参考,具体如下: 每天打开电脑第一件事应该就是打开人人刷一下,然后登上QQ.每次都这样很麻烦,于是写了一个脚本,每次双击即可自动完成这两个工作. 注意:需要在人人登录时选择"下次自动登录",QQ也要选择自动登录.其实感觉这些设置都是没必要的,都可以用脚本完成,但是本人比较水,就偷了懒,没有去查资料. 代码如下: todo.pyw: import webbrowser import os web

  • python登录QQ邮箱发信的实现代码

    复制代码 代码如下: # -*- coding: cp936 -*-from email.Header import Headerfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartimport smtplib, datetime#创建一个带附件的实例msg = MIMEMultipart()#构造附件att = MIMEText(open('f:\\文件名.doc', 'rb').rea

  • js如何调用qq互联api实现第三方登录

    qq互联js SDK:http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E 复制代码 代码如下: <script type=text/javascript> 在页面header中引入:<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js"

随机推荐