按鍵精靈 指令碼流程結構(3)

2021-10-12 07:08:27 字數 2656 閱讀 4389

讓指令碼隨時停止執行的命令

endscript

exitscript

除了f12可以讓指令碼停止執行,還可以用endscript

開啟記事本,當執行這段**時

keypress 「1」,1

delay 100

keypress 「2」,1

delay 100

endscript//到這裡就結束執行了,結果為12

keypress 「3」,1

雖然endscript和exitscript都可以停止指令碼,但是

endscript只能停止當前執行緒

而exitscript可以停止整個指令碼

執行以下**

beginthread 多執行緒//這是乙個啟動多執行緒的命令

delay 1000

tranceprint 「主指令碼」

exitscript//結果從執行緒到主指令碼就結束程序

//endscript//若換成endscript,從執行緒到主指令碼後,會繼續執行執行緒

tranceprint 「停止指令碼」

sub 多執行緒()//這是乙個多執行緒

dotranceprint 「執行緒」 & i

delay 200

loop

end sub

可以重啟指令碼,讓指令碼從頭執行

執行以下**

for i=0 to 2

delay 1000

tranceprint 「內容」 & i

next

restartscrip//重啟指令碼,執行結果不會再執行指令碼結束,會不斷重複0 1 2……

tranceprint 「指令碼結束」

乙個指令碼內容相同或相似,或者把乙個大的分解成若干個子任務。

以上情況可以單獨寫成子程式,然後再呼叫,呼叫完後,會自動回到呼叫處,然後繼續往下執行。

子程式如果不被呼叫,是不會被執行的

子程式可以互相呼叫

語法格式

sub 子程式名(引數列表)

指令碼**

end sub

呼叫子程式

call 子程式名(引數列表)//如果沒有這個,子程式是不會被執行的

1.不帶引數的子程式

引數,每個引數都是用逗號隔開,這些引數叫形參,僅僅只是當前的子程式,如果傳進來的叫實參

例如ifcolor中的乙個補血指令碼,在完整指令碼中,補血只是乙個小功能,所以可以把補血放倒乙個子程式中。

call 自動補血()//從這裡跳到自動補血裡

tranceprint 「呼叫自動補血完成」

sub 自動補血()

ifclolr 1289,281,「b9a05e」,0, then

messagebox 「顏色等於」

else

messagebox"顏色不等於"

end if

end sub//執行完後會回到call後面

2.帶引數的子程式

可以往子程式裡傳遞引數

例如下列**

x=1y=2

call 子程式(x,y)//x對應a,y對應b,一一對應,不能多寫,也不能少寫

sub 子程式(a,b)//a和b是引數,是形參,也就是說,只有當在子程式內的時候才會顯示的

tranceprint 「a=」 & a

tranceprint 「b=」 & b

end sub

從上面執行的指令碼來看,實參x的值傳遞給了形參a,實參y的值傳遞給了形參b,所以a的值是1,b的值是2.

當實參的值傳遞給了形參後,形參再如何改變,實參都不會改變&

例如下列交換變數的值的例子

x=1y=2

call 交換變數的值(x,y)//實參

sub 交換變數的值(x,y)//此x,y非彼x,y,這裡是形參

z=xx=y

y=ztranceprint 「交換後,形參x=」 & x

tranceprint 「交換後,形參y=」 & y

end sub

上面可以看出,子程式裡x,y交換了,主指令碼中仍然是原值

call互相呼叫子程式時,有時會死迴圈,可能使指令碼崩潰

因為每次呼叫子程式都會用一段記憶體來儲存未執行的部分,所以記憶體會占用越來越多,最終導致崩潰

比如以下**:

call a()

sub a()

call b()

tranceprint 「a」//被儲存到記憶體裡,被迴圈呼叫,被迴圈儲存

end sub

call a()

tranceprint 「b」//被儲存到記憶體裡

end sub

函式和子程式類似,唯一不同的就是,函式要有返回值

語法格式:

function 函式名(形參)

指令碼**

end function

例如下列**

和=加法(1,2)//加法是乙個函式

tranceprint 「1+2=」 & 和

function 加法(a,b)

加法=a+b//這是乙個返回值的寫法

end function

按鍵精靈 5 按鍵精靈控制指令碼流程2

標記 rem 格式 rem 標記名 跳轉 goto 格式 goto 標記名 如果在子程式內部,goto會先搜尋子程式內部是否有對應標記,如果有則跳轉到子程式內部,若果沒有則跳轉到朱指令碼中的標記 不能從乙個子程式中goto到另乙個子程式中 不能從主指令碼goto到子程式或函式內部 endscript...

按鍵精靈 3 按鍵精靈鍵盤滑鼠命令

1.鍵盤命令 按下鍵盤上的某乙個鍵並彈起的動作被稱為按鍵。對應命令格式為 keypress 按鍵碼,次數 可以在編輯器的基本命令裡查詢按鍵碼 例如要實現組合命令的必殺技 d 有時速度太快遊戲未必能響應出動作,所以一般會加上延時 delay 單位為毫秒,1秒 1000毫秒 如果要打出 符號的話 模擬方...

按鍵精靈高階指令碼

下面給出幾個利用vbscript訪問外部檔案的例子 rem 在當前盤根目錄下建立 測試.txt 並寫入乙個字串 vbs dim fso,file,filename vbs filename 測試.txt vbs const forwriting 2 vbs set fso createobject ...