學習遊戲輔助製作:VBS的Execute語句?

Tags: 語音, 語句,

學習遊戲輔助製作:VBS的Execute語句

工具/原料

按鍵精靈2014

方法/步驟

小編之前考認證的時候遇到這樣的一個題目:a = 1 : execute ("a=2*a"),a的值為?A:3B:1C:2D:4

>>疑問:

很多同學,同樣也遇到了這道題,其中有好多童鞋的第一反應和小編是一樣的:execute是什麼? 直覺告訴我它一定是一個很牛逼的東西,於是迫不及待的去翻了按鍵命令庫,命令庫上說execute是對指定的字串執行正則表示式搜尋。 什麼跟什麼啊?越看越暈,完全不知道這道題該怎麼解答。

>>解惑:

其實呢,題目中的execute並不是命令庫中的execute方法,而是vbs裡的 execute語句。

Execute語句

功能:執行一個或多個指定的語句。語法: Execute statements

* 所需要的 statements 引數是一個字串表示式,其中包含一個或多個要執行的語句。如果要在 statements 引數中包含多條語句,應使用分號或嵌入的分行將其分隔開。

注意: Execute 語句,statements 引數支援部分按鍵函式,不支援執行按鍵中的命令庫命令、不支援執行緒BeginThread語句 ——Execute 是vbs語句,而命令庫裡的函式,是使用按鍵語言編寫的,execute語句無法直接執行它。

題目中 execute ("a=2*a") a = 2*a 可以有兩種解釋。首先是作為賦值語句,將 2*a 的值賦予 a。其次是作為表示式,測試a 和 2*a 的值是否相等。如果相等,結果為 True;否則,結果為 False。Execute 語句總是使用第一種解釋,而 Eval 方法總是使用第二種。

Execute 語句例子:

a=1

Execute("a =2*a")

TracePrint a

輸出的結果為:2

Eval 語句例子:

a=1

If Eval("a =2*a") Then

TracePrint "相等"

Else

TracePrint "不相等"

End if

輸出的結果為:不相等

>>知識拓展:

1、 使用execute語句,無法執行帶有引號的語句

例子1:

Execute "KeyPress "3", 1"

執行之後,提示:語法錯誤:指令碼 我的指令碼1 ,第1行,第20個字元:(錯誤碼0)沒有找到合法的符號。怎麼辦?

學習遊戲輔助製作:VBS的Execute語句

程式碼:

Execute "KeyPress " & "51" &",1"

例子2:

Execute "runapp "notepad.exe""

執行之後,提示:語法錯誤:指令碼 我的指令碼1 ,第4行,第19個字元:(錯誤碼0)沒有找到合法的符號。 解決方法: 使用chr(34)來代替" 程式碼:

Execute "runapp " & chr(34) & "notepad.exe"& chr(34)

2、無法呼叫按鍵外掛命令

例子:

Execute "Call Plugin.File.DeleteFile("G:\test\字型檔.txt")" //呼叫File檔案外掛的刪除檔案命令

首先,需要將表示式中的”用chr(34)替換掉,如下:

Execute "Call Plugin.File.DeleteFile(" & chr(34) & "G:\test\字型檔.txt"& chr(34)&") "

可是,執行之後還是提示錯誤:缺少物件: 'Plugin'

為什麼會有這樣的提示呢? 是這樣的,咱們的execute是vbs語句,而在vbs語句中要呼叫外掛,是需要先建立外掛物件的

程式碼如下:

Set x=CreateObject("QMPlugin.File")

Execute "x.DeleteFile(" & chr(34) & "G:\test\字型檔.txt"& chr(34)&") "

語音, 語句,
相關問題答案