zoukankan      html  css  js  c++  java
  • vbs脚本实现qq定时发消息(初级)

    vbs脚本实现QQ消息定时发送

    目标

    批处理又称为批处理脚本,强大的强大功能可以高效得实现很多功能,例如批量更改文件格式,批量进行文件读写,今天我们的目标是用vbs脚本编写可以发送qq消息的脚本,并利用c++程序,实现qq消息的定时自动发送

    准备

    • 记事本

    vbs脚本不需要什么花里花哨的东西,记事本足矣

    • c++编译器

    随便选一个就行

    开工

    • 编写vbs脚本

    VBS是基于Visual Basic的脚本语言,功能还是很强的,当然我也只会一点点皮毛,因为工作需要,去学习了如何写发送QQ消息的脚本~

    新建一个空的记事本

    键入如下代码

    On Error Resume Next
    
    str="这里是你想说的话str1"
    
    Set Wshshell=WScript.CreateObject("WScript.Shell")
    
    WshShell.run"mshta vbscript:clipboardData.SetData("+""""+"text"+""""+","+""""&str&""""+")(close)",0,true
    
    WshShell.run"这里是你要发送到对方QQ的快捷方式str2"
    
    WScript.Sleep 1000
    
    WshShell.SendKeys"^v"
    
    WScript.Sleep 1000
    
    WshShell.SendKeys "%s"
    
    WScript.Sleep 1000
    
    WshShell.SendKeys"%{F4}"
    
    • 代码略讲

      第一行的On E...是vbs脚本在处理运行时错误时继续运行,而不是退出
      第二行str1为你想发送的消息,可以自己随便定义
      3行建立一个操作对象,4行讲str1的内容复制到剪贴板
      重点是第5行,获得快捷方式str2。

      打开QQ好友列表

      找到你想要发消息的人,打开和Ta的聊天窗口

      右键那3个点

      生成聊天快捷方式到桌面

      右键桌面的快捷方式

      选择属性

      复制

      目标处的一行字符串

    好了,str2已经获得,把str1和str2都填上,就是这种样子

    Sleep是暂停时间,1000为一秒,
    Sendkeys为模拟键盘输入,所以,这个脚本的执行逻辑就是把指定字符串复制到剪贴板,然后打开对方的qq界面,进行Ctrl+V复制,ALT+S发送,以及Alt+F4退出操作,行云流水

    • c++程序定时vbs脚本

    首先要知道一点,windows系统自带了定时任务,也就是你可以通过设置,让电脑定时执行一些程序或者脚本,当然我们这里使用system执行cmd命令来实现

    先粘贴一个定时命令schtasks的具体使用博客传送门,看完以后你大概昏头了,我也是看了很久把里面基础的东西提取出来。。
    关键代码一行
    schtasks /create /tn 任务名str1 /tr vbs脚本路径str2 /sc once /st 启动时间str3 sd/ 启动日期str2
    值得注意的是,最好任务名,路径,脚本名都不要用中文,否则容易出bug,我给出一行示例
    schtasks /create /tn supertask_Downa /tr C://Users/ddk24/Desktop/tutor/inform_Down.vbs /sc once /st 20:32:00 /sd 2018/12/16
    程序作用在18年12月16日的20点32分00秒执行一次在那个路径下的ifform_Down.vbs脚本,任务名为supertask_Downa(注意!!只执行一次)
    完整程序

    #include<iostream>
    #include<string>
    using namespace std;
    string a = "schtasks /create /tn supertask_";//任务名,注意多个任务不能由任务名相同的
    string b = "tr C://Users/ddk24/Desktop/tutor/inform_";//vbs路径名
    string c = ".vbs";
    string d = " /sc once /st ";
    string e = ":00 /sd ";
    string f = " /";
    int main() {
    	char ch = 'a';
    	string cmd;
    	string name = "Name_VBS";
    	string time_ = "20:30";
    	string date = "2018/12/15";
    	cmd = a + ch + f + b + name + c + d + time_ + e + date;
    	cout << cmd << endl;
    	char Cmd[300];
    	int i = 0;
    	for (i; i < cmd.size(); i++) {
    		Cmd[i] = cmd[i];
    	}
    	Cmd[i] = '';
    	system(Cmd);
    	system("pause");
    	return 0;
    }
    

    后记

    vbs的功能很强,我只会一点点,这个程序只能生成一次性的,虽然我这里也有可以删除任务的代码和每天启动的代码,但是不熟的话设置成功以后关不掉就会很麻烦,所有先玩这个吧,通过程序,你可以设置一个string数组,弄个一个月的时间(括弧笑),然后给自己设置脚本:小号发给自己提醒英语背单词的消息,哈哈。不过定时运行需要电脑时刻保持运行,有这个需求的可以再网上找相关东西
    2018/12/16 22:59:59

  • 相关阅读:
    WSP部署错误—SharePoint管理框架中的对象“SPSolutionLanguagePack Name=0”依赖其他不存在的对象
    Elevate Permissions To Modify User Profile
    Error with Stsadm CommandObject reference not set to an instance of an object
    ASP.NET MVC3添加Controller时没有Scaffolding options
    测试使用Windows Live Writer写日志
    配置TFS 2010出现错误—SQL Server 登录的安全标识符(SID)与某个指定的域或工作组帐户冲突
    使用ADO.NET DbContext Generator出现错误—Unable to locate file
    CSS
    HTML DIV标签
    数据库
  • 原文地址:https://www.cnblogs.com/Titordong/p/10129060.html
Copyright © 2011-2022 走看看