程序員花式拜年腳本
目標(biāo)
vbs腳本實(shí)現(xiàn)模擬鍵盤輸出13種語(yǔ)言拜年,朗讀拜年語(yǔ)音,之后打開瀏覽器顯示支付寶收錢碼,索要紅包(厚臉皮
vbs拜年文件直接下載傳送門,喜歡干貨的可以直接出發(fā)了
準(zhǔn)備
玩vbs有一段時(shí)間了,對(duì)原理感興趣的可以看一下我上一篇vbs的博客,這篇我會(huì)講的快一點(diǎn),沒有基礎(chǔ)的話可能理解有點(diǎn)困難,上一篇傳送門
-
記事本
老規(guī)矩了,記事本寫vbs -
模擬鍵盤代碼生成器
vbs的模擬鍵盤功能至今沒有找到方便的方法,只能一個(gè)字母一個(gè)字母去模擬,但是我們可以用自己寫程序的方法,把想說(shuō)的話,轉(zhuǎn)化成vbs模擬鍵盤代碼,這次更深入了解模擬鍵盤的一些小細(xì)節(jié)以后,更新了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是兩個(gè)鍵之間的敲擊間隔,可以自由設(shè)置,具體看下文
開工
-
創(chuàng)建vbs文件,做初步準(zhǔn)備
在桌面創(chuàng)建記事本文件,改擴(kuò)展名為vbs,不會(huì)改后綴名的請(qǐng)去百度,鍵入以下代碼
CreateObject("SAPI.SpVoice").Speak"過(guò)年好啊,我要用13種語(yǔ)言給您拜年啦"
Dim AutoTime
AutoTime = 50
Set WS=WScript.CreateObject("WScript.Shell")
WS.run("notepad"),3
WScript.Sleep 500
WS.AppActivate("notepad")
WS.SendKeys "+"
第一行朗讀拜年內(nèi)容,可以自己設(shè)置,從第二行到最后都是為了模擬鍵盤輸入做準(zhǔn)備,建立對(duì)象,設(shè)置間隔變量AutoTime,打開記事本,停頓0.5s,獲取記事本焦點(diǎn)(這個(gè)非常重要),切換輸入法為英文WS.SendKeys "+"這個(gè)是模擬鍵盤按shift的意思,因?yàn)槲覀円么a拜年,開頭就是用英文寫的
-
生成模擬鍵盤vbs代碼
懂c++的同學(xué)可能已經(jīng)注意到了,上面的“模擬鍵盤代碼生成器”中涉及到了一個(gè)in.txt文件和一個(gè)out.txt文件,in就是要顯示的文件,而out用來(lái)存放根據(jù)in生成的vbs代碼,接下來(lái)在D盤創(chuàng)建in.txt(out.txt程序會(huì)自動(dòng)生成,不用手動(dòng)創(chuàng)建),鍵入以下內(nèi)容,保存關(guān)閉
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+"
順便說(shuō)一下,我們要顯示的東西時(shí)這樣子的
print_r('新年快樂(lè)');
var_dump('新年快樂(lè)');
NSLog(@"新年快樂(lè)");
System.out.println("新年快樂(lè)");
console.log("新年快樂(lè)");
print("新年快樂(lè)");
printf("新年快樂(lè)");
cout<<"新年快樂(lè)"<< endl;
Console.WriteLine("新年快樂(lè)");
fmt.Println("新年快樂(lè)");
Response.Write("新年快樂(lè)");
alert("新年快樂(lè)")
echo"新年快樂(lè)"
以第一行in的文件為例print_r('+xinniankuaile1+');,括號(hào)中出現(xiàn)的+號(hào)如上文所說(shuō),代表shift鍵,前面已經(jīng)切成了英文輸入法,現(xiàn)在再切回去,打xinniankuaile,因?yàn)檩斎敕ㄗ詭У穆?lián)想詞語(yǔ)功能,新年快樂(lè)就出現(xiàn)在了第一個(gè)(按說(shuō)誰(shuí)的輸入法都會(huì)這樣,按說(shuō),,,),然后按1就正好打出了漢字“新年快樂(lè)”,在上一篇博客已經(jīng)說(shuō)過(guò)了,vbs是不能直接模擬鍵盤輸入中文的,因?yàn)殒I盤上沒有中文鍵(什么沙雕邏輯),所以只能用這種看起來(lái)符合日常習(xí)慣的方法進(jìn)行模擬輸入,把新年快樂(lè)敲出來(lái)以后再一個(gè)+,把輸入法切回英文,下面的同理
保存以后運(yùn)行“模擬鍵盤代碼生成器”,這時(shí)候D盤就多了out.txt文件,打開以后出現(xiàn)的7,8百行代碼就是我們需要的東西(對(duì),就是這么多,你以為呢),把這個(gè)文件中的所有代碼復(fù)制,粘貼到我們上一步新建立的vbs文件中
-
打開支付寶二維碼網(wǎng)頁(yè),索要紅包(
這之前首先先說(shuō)幾句祝福的話,再要錢啊,跟著上面的內(nèi)容,鍵入以下內(nèi)容
CreateObject("SAPI.SpVoice").Speak"祝您豬年諸事大吉,身體健康,萬(wàn)事如意,恭喜發(fā)財(cái),紅包拿來(lái),掃碼即可哦"
WScript.Sleep 200
Sleep 是暫停,暫停200ms,給系統(tǒng)一點(diǎn)反應(yīng)時(shí)間,不然會(huì)出bug,下面我們做支付寶收錢碼鏈接
先把收錢碼上傳到圖床(可以把自己的圖片掛在網(wǎng)上)上面,圖床傳送門
根據(jù)提示上傳好后,保存鏈接備用

繼續(xù),跟著上面的內(nèi)容,鍵入以下代碼
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
第一句是調(diào)用函數(shù),后面是函數(shù)的內(nèi)容,用來(lái)實(shí)現(xiàn),在桌面創(chuàng)建一個(gè)快捷方式并自動(dòng)打開,顯示你的支付寶收錢碼,注意這行
oShellLink.TargetPath = "https://ww1.sinaimg.cn/large/007i4MEmgy1fzviwg4l7uj30u01aoag3.jpg"
這后面的鏈接,是我的收錢碼在圖床上的鏈接,這時(shí)候就把剛才保存的你自己的收錢碼鏈接替換上去,就成自己的了!
搞定收工,保存退出,雙擊運(yùn)行即可,記得在運(yùn)行時(shí)鼠標(biāo)不要點(diǎn)擊任何地方,會(huì)出bug,學(xué)會(huì)的小伙伴們,可以拿去給別人拜年收錢了(233
后記
模擬鍵盤輸入科技感十足,有一小部分小伙伴電腦不能運(yùn)行,嗚嗚,沒辦法了,正常情況下windows都可以直接運(yùn)行的
2019/2/5 15:42:19
浙公網(wǎng)安備 33010602011771號(hào)