国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

使用vbs腳本實現自動打字祝福與搞笑實現代碼

2020-07-26 11:20:07
字體:
來源:轉載
供稿:網友

概述

聽說抖音上流行一種用代碼做程序表白的東西,,,,
當然我也不是要表白,,,,
但是好像蠻有意思的,,,,
于是,又學了一下vbs腳本,做了幾個很不錯的祝福腳本,不懂代碼的可以直接戳傳送門下載,但是想自己改內容的話,下面有講

效果示范

<iframe height=498 width=510 src='http://player.youku.com/embed/XMzk4Nzk4NDE5Ng==' frameborder=0 'allowfullscreen'>

貌似不能看,只能點進去看,好吧,,,

思路

目前這個腳本分成了4個板塊的功能,想自己改的可以通過下面的講解自己改內容,或者啟動我原來沒有啟動的功能
首先,把程序下載以后,拖到桌面上,右鍵用記事本打開,對!用記事本打開,vbs腳本不需要花里胡哨的編輯器云云,直接暴力記事本打開,查看源碼

1)開篇交互對話框

 

Dim a,cut,b,Str,flagflag=falsecut=1a=Inputbox("你相信這世界上存在圣誕老人嗎?",,"相信")MsgBox "..."MsgBox "其實我就是圣誕老人"MsgBox "雖然我沒有禮物給你"MsgBox "嗚嗚,你是不是生氣啦"MsgBox "那我給你變個魔術好不好"a=Inputbox("要不要變魔術?",,"要")If a<>"要" Then   MsgBox "嗚嗚,真的不給機會嗎?"  Do   b=InputBox(Str+"試一下吧",,"不")  Str=Str&"請"  If b<>"不"Then     flag=true    Exit Do   Else cut=cut+1  End If   If cut=5 Then     MsgBox "那好吧,再見!"    Exit Do   End If  LoopElse flag=trueEnd If

Dim關鍵字用來聲明變量,當然在vbs里變量不聲明也可以用,但是退出那個塊以后變量就釋放掉了,所有最好還是前面聲明一下,之后的程序應該比較好看懂,有輸入對話框,顯示對話框,提示輸入,inputbox的輸入對話框第2個參數省略了,第3個參數是默認的輸入框里的內容,這里面的素有雙引號內的東西都可以自己改,在選擇是否變魔術那里,選5次否,腳本退出

2)打開記事本,念打油詩

If flag=true Then Set WS=WScript.CreateObject("WScript.Shell")WS.run("notepad"),3WScript.Sleep 500WS.AppActivate("notepad")WS.SendKeys "+"arr=Array("聽","說","你","被","拐","賣","真","的","把","我","嚇","壞","你","雖","從","小","癡","呆","卻","對","社","會","無","害","誰","人","如","此","大","膽","竟","敢","拿","你","去","賣","我","真","替","他","擔","心","賣","得","掉","才","怪","")f(arr)WScript.Sleep 3000For i=0 To 90  WScript.Sleep 30  WS.SendKeys "{BS}"Next arr=Array("好","啦","好","啦","不","逗","你","了","")Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&str1&""")(Window.Close)"WS.Run(Clipboard)  For i=0 To 8    WScript.Sleep 200    Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&arr(i)&""")(Window.Close)"    WS.Run(Clipboard)    WS.SendKeys"^v"  NextWScript.Sleep 3000For i=0 To 90  WScript.Sleep 30  WS.SendKeys "{BS}"Next 

以及f函數的實現

Function f(a)  Dim str1  Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&str1&""")(Window.Close)"  WS.Run(Clipboard)  For i=0 To 47    WScript.Sleep 200    Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&a(i)&""")(Window.Close)"    WS.Run(Clipboard)    WS.SendKeys"^v"    If i>0 Then    If(i Mod 6=0) Then      WScript.Sleep 400      WS.SendKeys "{ENTER}"    End If    End IF  NextEnd Function

下載了vbs腳本以后就會發現,這一部分其實并沒與啟動,因為雖然這部分代碼有,但是關鍵部分都被我注釋掉了,如你所見'在vbs腳本中就是注釋(大號字體標注),也就是英文的單引號,如果想啟動,就把這一部分的注釋全部去掉,這部分的原理就是把漢字數組的每個字依次傳到剪貼板,然后偶模擬鍵盤Ctrl+V,由于頻繁操作剪貼板,這部分執行可能會導致缺字打印(電腦緩不過來),之后進行模擬鍵盤的刪除操作,把寫好的打油詩刪除,準備下面的英語正文。

3)接著上面的記事本,寫英文

這是整個腳本的重點,寫出像視頻中的效果那樣,一個字母一個字母敲的效果,先上一段代碼: 

AutoTime=75say(AutoTime)Function say(AutoTime)End Function

什么?就這么點嗎?當然不是!!!這部分的代碼有上千上,內容就在function中間,當然你也看出這是個函數了,那我們的內容也是模擬鍵盤輸入,所以,你覺得怎么搞這部分呢?
用數組存字符串,然后模擬鍵盤輸出嗎?
試過很多次了,都失敗了,貌似只能一個一個敲
然后,寫一個字母的代碼量,,,,大概是40個字母
當然,不可能真的一個字一個字敲啊,為什么不寫一個程序出來,專門寫vb的模擬鍵盤輸入代碼呢?

C++實現英文轉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;        ofile << "WS.SendKeys /"" << str[i] << "/"" << endl;      }      ofile << "WScript.Sleep 1000" << endl;      ofile << "WS.SendKeys /"{ENTER}/"" << endl << endl << endl;    }  }  ofile.close();  ifile.close();  return 0;}

兩個文件,in.txt,你要顯示的英文,可以空行,可以逗號問好,但是,必須用英文輸入法

對,就像這樣,對吧,很容易,然后就會生成一個1k多行的out.txt
把里面內容全選復制,然后放在function say 的中間,這一步就完成了
AutoTime是每個字的間隔,可以自己定義,75效果就蠻好的

4)祝福網頁

又是一個在腳本里沒出現的功能,

Function link()Set Seven = WScript.CreateObject("WScript.Shell")strDesktop = Seven.SpecialFolders("Desktop")set oShellLink = Seven.CreateShortcut(strDesktop & "/Titordong.url")oShellLink.TargetPath = "https://www.cnblogs.com/Titordong/"oShellLink.SaveSet oShellLink=NothingstrDesktop = Seven.SpecialFolders(4)mypath=strDesktop&"/Titordong.url"Seven.run mypathEnd Function

如果你有博客,或者你有自己寫的網頁,甚至你自己的qq空間也行,把鏈接復制,然后oShellLink.TargetPath = "https://www.cnblogs.com/Titordong/"里面的后面引號里替換,就ok
效果就是可以再桌面建立一個快捷方式鏈接,然后自動打開你指向的這個鏈接,當然這個在程序里要調用的話,要在say(AutoTime)后面加一行link()

后記

vbs腳本功能很強(好像之前說過),切記每行只能有一個語句哦!而且,用英文輸入法寫,包括代碼,也包括英文的祝福&搞笑,至于為什么不用中文,,,鍵盤上也沒有中文按鍵啊~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巩义市| 尚志市| 农安县| 绍兴市| 鹤庆县| 四子王旗| 佛坪县| 如东县| 浑源县| 河曲县| 兴安盟| 大化| 南平市| 准格尔旗| 宜城市| 犍为县| 南开区| 海盐县| 清镇市| 敖汉旗| 辽源市| 颍上县| 普格县| 景宁| 洱源县| 萨嘎县| 英德市| 平湖市| 孝义市| 满城县| 海丰县| 湖北省| 新绛县| 浦县| 台北市| 寿宁县| 北安市| 永吉县| 英德市| 阳高县| 龙川县|