主頁(yè) > 知識(shí)庫(kù) > 使用vbs腳本實(shí)現(xiàn)自動(dòng)打字祝福與搞笑實(shí)現(xiàn)代碼

使用vbs腳本實(shí)現(xiàn)自動(dòng)打字祝福與搞笑實(shí)現(xiàn)代碼

熱門標(biāo)簽:如何用機(jī)器人進(jìn)行電銷 東營(yíng)快遞外呼系統(tǒng) 哪里有便宜的地圖標(biāo)注公司 神行者美術(shù)館地圖標(biāo)注 佛山真人電銷機(jī)器人廠家 百度地圖標(biāo)注點(diǎn)距離代碼 齊齊哈爾高德地圖標(biāo)注店 地圖標(biāo)注政府哪個(gè)部門管 除了地圖標(biāo)注還有這種生意嗎

概述

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

效果示范

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

貌似不能看,只能點(diǎn)進(jìn)去看,好吧,,,

思路

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

1)開(kāi)篇交互對(duì)話框

 

Dim a,cut,b,Str,flag
flag=false
cut=1
a=Inputbox("你相信這世界上存在圣誕老人嗎?",,"相信")
MsgBox "..."
MsgBox "其實(shí)我就是圣誕老人"
MsgBox "雖然我沒(méi)有禮物給你"
MsgBox "嗚嗚,你是不是生氣啦"
MsgBox "那我給你變個(gè)魔術(shù)好不好"
a=Inputbox("要不要變魔術(shù)?",,"要")
If a>"要" Then 
  MsgBox "嗚嗚,真的不給機(jī)會(huì)嗎?"
  Do 
  b=InputBox(Str+"試一下吧",,"不")
  Str=Str"請(qǐng)"
  If b>"不"Then 
    flag=true
    Exit Do 
  Else cut=cut+1
  End If 
  If cut=5 Then 
    MsgBox "那好吧,再見(jiàn)!"
    Exit Do 
  End If
  Loop
Else flag=true
End If

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

2)打開(kāi)記事本,念打油詩(shī)

If flag=true Then 
Set WS=WScript.CreateObject("WScript.Shell")
WS.run("notepad"),3
WScript.Sleep 500
WS.AppActivate("notepad")
WS.SendKeys "+"
arr=Array("聽(tīng)","說(shuō)","你","被","拐","賣","真","的","把","我","嚇","壞","你","雖","從","小","癡","呆","卻","對(duì)","社","會(huì)","無(wú)","害","誰(shuí)","人","如","此","大","膽","竟","敢","拿","你","去","賣","我","真","替","他","擔(dān)","心","賣","得","掉","才","怪","")
f(arr)
WScript.Sleep 3000
For 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"
  Next
WScript.Sleep 3000
For i=0 To 90
  WScript.Sleep 30
  WS.SendKeys "{BS}"
Next 

以及f函數(shù)的實(shí)現(xiàn)

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
  Next
End Function

下載了vbs腳本以后就會(huì)發(fā)現(xiàn),這一部分其實(shí)并沒(méi)與啟動(dòng),因?yàn)殡m然這部分代碼有,但是關(guān)鍵部分都被我注釋掉了,如你所見(jiàn)'在vbs腳本中就是注釋(大號(hào)字體標(biāo)注),也就是英文的單引號(hào),如果想啟動(dòng),就把這一部分的注釋全部去掉,這部分的原理就是把漢字?jǐn)?shù)組的每個(gè)字依次傳到剪貼板,然后偶模擬鍵盤Ctrl+V,由于頻繁操作剪貼板,這部分執(zhí)行可能會(huì)導(dǎo)致缺字打印(電腦緩不過(guò)來(lái)),之后進(jìn)行模擬鍵盤的刪除操作,把寫好的打油詩(shī)刪除,準(zhǔn)備下面的英語(yǔ)正文。

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

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

AutoTime=75
say(AutoTime)

Function say(AutoTime)
End Function

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

C++實(shí)現(xiàn)英文轉(zhuǎn)vbs模擬鍵盤輸入代碼

#includeiostream>
#includefstream>
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  endlendl;
    }
    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;
}

兩個(gè)文件,in.txt,你要顯示的英文,可以空行,可以逗號(hào)問(wèn)好,但是,必須用英文輸入法

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

4)祝福網(wǎng)頁(yè)

又是一個(gè)在腳本里沒(méi)出現(xiàn)的功能,

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.Save
Set oShellLink=Nothing
strDesktop = Seven.SpecialFolders(4)
mypath=strDesktop"\Titordong.url"
Seven.run mypath
End Function

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

后記

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

標(biāo)簽:西安 銅川 湖州 邢臺(tái) 文山 四平 鶴壁

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用vbs腳本實(shí)現(xiàn)自動(dòng)打字祝福與搞笑實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  使用,vbs,腳本,實(shí)現(xiàn),自動(dòng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用vbs腳本實(shí)現(xiàn)自動(dòng)打字祝福與搞笑實(shí)現(xiàn)代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于使用vbs腳本實(shí)現(xiàn)自動(dòng)打字祝福與搞笑實(shí)現(xiàn)代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章