溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用vbs腳本實現(xiàn)自動打字祝福與搞笑

發(fā)布時間:2021-05-31 13:39:10 來源:億速云 閱讀:276 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關怎么使用vbs腳本實現(xiàn)自動打字祝福與搞笑,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

效果示范

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

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

思路

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

1)開篇交互對話框

Dim a,cut,b,Str,flag
flag=false
cut=1
a=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
  Loop
Else flag=true
End If

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

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

If flag=true Then 
Set WS=WScript.CreateObject("WScript.Shell")
WS.run("notepad"),3
WScript.Sleep 500
WS.AppActivate("notepad")
WS.SendKeys "+"
arr=Array("聽","說","你","被","拐","賣","真","的","把","我","嚇","壞","你","雖","從","小","癡","呆","卻","對","社","會","無","害","誰","人","如","此","大","膽","竟","敢","拿","你","去","賣","我","真","替","他","擔","心","賣","得","掉","才","怪","")
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ù)的實現(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腳本以后就會發(fā)現(xiàn),這一部分其實并沒與啟動,因為雖然這部分代碼有,但是關鍵部分都被我注釋掉了,如你所見'在vbs腳本中就是注釋(大號字體標注),也就是英文的單引號,如果想啟動,就把這一部分的注釋全部去掉,這部分的原理就是把漢字數(shù)組的每個字依次傳到剪貼板,然后偶模擬鍵盤Ctrl+V,由于頻繁操作剪貼板,這部分執(zhí)行可能會導致缺字打?。娔X緩不過來),之后進行模擬鍵盤的刪除操作,把寫好的打油詩刪除,準備下面的英語正文。

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

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

AutoTime=75
say(AutoTime)

Function say(AutoTime)
End Function

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

C++實現(xiàn)英文轉(zhuǎn)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
把里面內(nèi)容全選復制,然后放在function say 的中間,這一步就完成了
AutoTime是每個字的間隔,可以自己定義,75效果就蠻好的

4)祝福網(wǎng)頁

又是一個在腳本里沒出現(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)頁,甚至你自己的qq空間也行,把鏈接復制,然后oShellLink.TargetPath = "https://www.cnblogs.com/Titordong/"里面的后面引號里替換,就ok
效果就是可以再桌面建立一個快捷方式鏈接,然后自動打開你指向的這個鏈接,當然這個在程序里要調(diào)用的話,要在say(AutoTime)后面加一行l(wèi)ink()

關于“怎么使用vbs腳本實現(xiàn)自動打字祝福與搞笑”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

vbs
AI