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] = '\0';
	system(Cmd);
	system("pause");
	return 0;
}

后記

vbs的功能很強,我只會一點點,這個程序只能生成一次性的,雖然我這里也有可以刪除任務的代碼和每天啟動的代碼,但是不熟的話設置成功以后關不掉就會很麻煩,所有先玩這個吧,通過程序,你可以設置一個string數組,弄個一個月的時間(括弧笑),然后給自己設置腳本:小號發給自己提醒英語背單詞的消息,哈哈。不過定時運行需要電腦時刻保持運行,有這個需求的可以再網上找相關東西
2018/12/16 22:59:59


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM