程序員花式拜年腳本


程序員花式拜年腳本

目標

vbs腳本實現模擬鍵盤輸出13種語言拜年,朗讀拜年語音,之后打開瀏覽器顯示支付寶收錢碼,索要紅包(厚臉皮
vbs拜年文件直接下載傳送門,喜歡干貨的可以直接出發了

准備

玩vbs有一段時間了,對原理感興趣的可以看一下我上一篇vbs的博客,這篇我會講的快一點,沒有基礎的話可能理解有點困難,上一篇傳送門

  • 記事本

    老規矩了,記事本寫vbs
  • 模擬鍵盤代碼生成器

    vbs的模擬鍵盤功能至今沒有找到方便的方法,只能一個字母一個字母去模擬,但是我們可以用自己寫程序的方法,把想說的話,轉化成vbs模擬鍵盤代碼,這次更深入了解模擬鍵盤的一些小細節以后,更新了vbs模擬代碼生成器的代碼,如下:
#include<iostream>
#include<fstream>
using namespace std;
int main() {
	ifstream ifile;
	ifile.open("D:\\in.txt");
	ofstream ofile;
	ofile.open("D:\\out.txt");
	char str[100];
	while (ifile.getline(str, 100)) {
		if (str[0] == '\0') {
			ofile << "WS.SendKeys \"{ENTER}\"" << endl << endl<<endl;
		}
		else {
			for (int i(0); i < strlen(str); i++) {				
				ofile << "WScript.Sleep AutoTime" << endl;
				if(str[i] == '{') {
					ofile << "WS.SendKeys \"";
					do{
						ofile << str[i];
					} while (str[i++] != '}');
					ofile <<"\""<<endl;
					i--;
				}
				else {
					ofile << "WS.SendKeys \"";
					if (str[i] == '\"')
						ofile << "\"\"\"" << endl;
					else if (str[i] == '(' || str[i] == ')')
						ofile << '{' << str[i] << '}' << "\"" << endl;
					else ofile << str[i] << "\"" << endl;
				}
			}
			ofile << "WScript.Sleep 1000" << endl;
			ofile << "WS.SendKeys \"{ENTER}\"" << endl << endl << endl;
		}
	}
	ofile.close();
	ifile.close();
	return 0;
}

AutoTime是兩個鍵之間的敲擊間隔,可以自由設置,具體看下文

開工

  • 創建vbs文件,做初步准備

在桌面創建記事本文件,改擴展名為vbs,不會改后綴名的請去百度,鍵入以下代碼

CreateObject("SAPI.SpVoice").Speak"過年好啊,我要用13種語言給您拜年啦"
Dim AutoTime
AutoTime = 50
Set WS=WScript.CreateObject("WScript.Shell")
WS.run("notepad"),3
WScript.Sleep 500
WS.AppActivate("notepad")
WS.SendKeys "+"

第一行朗讀拜年內容,可以自己設置,從第二行到最后都是為了模擬鍵盤輸入做准備,建立對象,設置間隔變量AutoTime,打開記事本,停頓0.5s,獲取記事本焦點(這個非常重要),切換輸入法為英文WS.SendKeys "+"這個是模擬鍵盤按shift的意思,因為我們要用代碼拜年,開頭就是用英文寫的

  • 生成模擬鍵盤vbs代碼

懂c++的同學可能已經注意到了,上面的“模擬鍵盤代碼生成器”中涉及到了一個in.txt文件和一個out.txt文件,in就是要顯示的文件,而out用來存放根據in生成的vbs代碼,接下來在D盤創建in.txt(out.txt程序會自動生成,不用手動創建),鍵入以下內容,保存關閉

print_r('+xinniankuaile1+');
var_dump('+xinniankuaile1+');
NSLog(@"+xinniankuaile1+");
System.out.println("+xinniankuaile1+");
console.log("+xinniankuaile1+");
print("+xinniankuaile1+");
printf("+xinniankuaile1+");
cout<<"+xinniankuaile1+"<< endl;
Console.WriteLine("+xinniankuaile1+"); 
fmt.Println("+xinniankuaile1+");
Response.Write("+xinniankuaile1+");
alert("+xinniankuaile1+")
echo"+xinniankuaile1+"

順便說一下,我們要顯示的東西時這樣子的

print_r('新年快樂');
var_dump('新年快樂');
NSLog(@"新年快樂");
System.out.println("新年快樂");
console.log("新年快樂");
print("新年快樂");
printf("新年快樂");
cout<<"新年快樂"<< endl;
Console.WriteLine("新年快樂"); 
fmt.Println("新年快樂");
Response.Write("新年快樂");
alert("新年快樂")
echo"新年快樂"

以第一行in的文件為例print_r('+xinniankuaile1+');,括號中出現的+號如上文所說,代表shift鍵,前面已經切成了英文輸入法,現在再切回去,打xinniankuaile,因為輸入法自帶的聯想詞語功能,新年快樂就出現在了第一個(按說誰的輸入法都會這樣,按說,,,),然后按1就正好打出了漢字“新年快樂”,在上一篇博客已經說過了,vbs是不能直接模擬鍵盤輸入中文的,因為鍵盤上沒有中文鍵(什么沙雕邏輯),所以只能用這種看起來符合日常習慣的方法進行模擬輸入,把新年快樂敲出來以后再一個+,把輸入法切回英文,下面的同理
保存以后運行“模擬鍵盤代碼生成器”,這時候D盤就多了out.txt文件,打開以后出現的7,8百行代碼就是我們需要的東西(對,就是這么多,你以為呢),把這個文件中的所有代碼復制,粘貼到我們上一步新建立的vbs文件中

  • 打開支付寶二維碼網頁,索要紅包(

這之前首先先說幾句祝福的話,再要錢啊,跟着上面的內容,鍵入以下內容

CreateObject("SAPI.SpVoice").Speak"祝您豬年諸事大吉,身體健康,萬事如意,恭喜發財,紅包拿來,掃碼即可哦"
WScript.Sleep 200

Sleep 是暫停,暫停200ms,給系統一點反應時間,不然會出bug,下面我們做支付寶收錢碼鏈接
先把收錢碼上傳到圖床(可以把自己的圖片掛在網上)上面,圖床傳送門
根據提示上傳好后,保存鏈接備用

繼續,跟着上面的內容,鍵入以下代碼

link()
Function link()
Set Seven = WScript.CreateObject("WScript.Shell")
strDesktop = Seven.SpecialFolders("Desktop")
set oShellLink = Seven.CreateShortcut(strDesktop & "\Titordong.url")
oShellLink.TargetPath = "https://ww1.sinaimg.cn/large/007i4MEmgy1fzviwg4l7uj30u01aoag3.jpg"
oShellLink.Save
Set oShellLink=Nothing
strDesktop = Seven.SpecialFolders(4)
mypath=strDesktop&"\Titordong.url"
Seven.run mypath
End Function

第一句是調用函數,后面是函數的內容,用來實現,在桌面創建一個快捷方式並自動打開,顯示你的支付寶收錢碼,注意這行
oShellLink.TargetPath = "https://ww1.sinaimg.cn/large/007i4MEmgy1fzviwg4l7uj30u01aoag3.jpg"
這后面的鏈接,是我的收錢碼在圖床上的鏈接,這時候就把剛才保存的你自己的收錢碼鏈接替換上去,就成自己的了!
搞定收工,保存退出,雙擊運行即可,記得在運行時鼠標不要點擊任何地方,會出bug,學會的小伙伴們,可以拿去給別人拜年收錢了(233

后記

模擬鍵盤輸入科技感十足,有一小部分小伙伴電腦不能運行,嗚嗚,沒辦法了,正常情況下windows都可以直接運行的
2019/2/5 15:42:19


免責聲明!

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



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