按鍵精靈中并沒有計時器,如果我們需要執(zhí)行某個操作10秒鐘,這樣將會很麻煩,因為程序要么停下來只是數(shù)過了幾秒,要么就嗖嗖嗖的跑程序不知道跑多久,我們需要它一邊計時的同時跑程序,所以需要計時器控制程序,做到某段程序僅執(zhí)行一定的時間。好了,進入正題! Global k //全局變量k,用于在計時結束時給個信號已結束下面的循環(huán) k=0 BeginThread time // 啟動線程time Delay 100 i=0 While k = 0 Delay 1000 TracePrint "過了 " & i & " 秒!" TracePrint "K值為 " & k & " !"//僅僅表示程序在跑While時候同時在跑sub time計時 i=i+1 Wend Sub time() //作為線程函數(shù) k = Lib.MyTool.Timer(5000, 10) //函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù),設置為執(zhí)行5秒,結束后Tiemr返回 10 故過5秒后k=10 End Sub /************下面函數(shù)為我在命令庫里自己建的文件(MyTool)下的函數(shù)***************/ Function Timer(time,n)//time為需要計時時間,n為計時結束后返回的值,需要n的原因在于作為標號,結束時根據(jù)標號判斷結束的是哪一段程序,方便調(diào)試及編程 T1 = Plugin.Sys.GetTime//獲取執(zhí)行前系統(tǒng)時間 t=0 While time >= t T2 = Plugin.Sys.GetTime//執(zhí)行時刻時間監(jiān)測 t = T2 - T1 Wend Timer = n End Function 好了,有同學可能覺得程序中為了計時器加這個代碼亂,其實我也這么覺得,所以我后面把他們都封裝起來直接調(diào)用~ 下面看!
主要代碼就兩句,就可以實現(xiàn)多線程計時器,一個是啟用計時,一個是獲取結束計時時候的返回值。 Call Lib.MyTool.Timer(計時時間) Lib.MyTool.TimerF(循環(huán)體循環(huán)數(shù),自定義返回數(shù))
存在問題,不知道按鍵創(chuàng)建進程是否會自動銷毀進程,不然運行時間長的話會出問題。 |
|