### VBS脚本实现QQ或TM自动登录及防关闭功能 #### 一、脚本概述 本文档将详细介绍一个Visual Basic Script(VBS)脚本的功能及其内部逻辑,该脚本能够实现QQ或TM(TM为腾讯通,一种即时通讯软件)的自动登录,并且在用户尝试关闭时阻止其被关闭。 #### 二、脚本核心功能解析 1. **检测QQ或TM进程**: - 脚本通过`Win32_Process`类查询当前系统中运行的所有进程。 - 检查其中是否包含`qq.exe`或`tm.exe`这两个特定的进程名。 2. **获取自动登录参数**: - 如果检测到QQ或TM进程正在运行,则从命令行参数中提取自动登录所需的UIN(用户标识号)。 - UIN参数通常位于进程命令行参数中的`QQUIN:`之后。 3. **自动登录与循环监控**: - 当检测到QQ或TM进程不存在时,脚本会自动启动相应的程序,并设置延迟以等待程序完成登录。 - 通过一个循环来持续监控QQ或TM进程的状态,确保其一直运行。 4. **防止关闭**: - 虽然脚本本身并没有直接实现“防止关闭”的功能,但通过不断地重启程序,可以间接地达到这一目的。 #### 三、详细代码分析 1. **初始化WMIService对象**: ```vb Set objWMIService = GetObject_("winmgmts:\\" & "." & "\root\cimv2") ``` 这段代码创建了一个`WMIService`对象,用于访问WMI(Windows Management Instrumentation)服务,从而获取系统的相关信息。 2. **查询Win32_Process**: ```vb Set ps = objWMIService.ExecQuery_("SELECT * FROM Win32_Process") ``` 使用`ExecQuery_`方法执行WQL(WMI Query Language)查询语句,获取系统中所有的进程信息。 3. **遍历进程列表**: ```vb For Each ps In ps If LCase(ps.Name) = "qq.exe" Or LCase(ps.Name) = "tm.exe" Then AppPath = ps.commandline tmp = Replace(AppPath, Chr(34), Space(1)) UIN1 = InStr(tmp, "QQUIN:") + 6 QQUIN = Mid(tmp, UIN1, InStr(UIN1, tmp, Space(1)) - UIN1) End If Next ``` - 遍历所有进程,检查进程名称是否为`qq.exe`或`tm.exe`。 - 如果是,则从进程的命令行参数中提取UIN信息。 4. **循环监控与自动重启**: ```vb Do myqqin = chkuin(QQUIN) If Not myqqin Then runapp(AppPath) wscript.sleep 10000 Else wscript.sleep 5000 End If Loop ``` - 通过`chkuin`函数检查QQ或TM进程是否仍在运行。 - 如果进程已退出,则调用`runapp`函数重新启动QQ或TM,并等待一段时间确保程序完成登录。 - 通过循环不断检查进程状态,确保程序始终处于运行状态。 5. **辅助函数实现**: - `RunApp(AppPath)`:使用`WScript.Shell`对象启动指定路径的程序。 - `chkuin(QQUIN)`:再次查询进程列表,检查是否存在指定UIN的QQ或TM进程。 #### 四、总结 该VBS脚本主要实现了QQ或TM的自动登录及循环监控功能,通过不断重启程序来间接防止程序被意外关闭。需要注意的是,虽然脚本能够帮助用户实现自动登录的目的,但频繁的重启操作可能会对用户体验造成一定影响。此外,在实际应用过程中还需注意软件的安全性和合规性问题。
- 粉丝: 11
- 资源: 953
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助