用按鍵精靈巧妙獲取時間間隔?

還在苦苦守著電腦,心急如焚看著血條越來越少,等著技能CD冷卻然後放大招嘛……

想不想浪漫一把,博得基 友歡心,從此只愛你一人?

是不是想說,有DateDiff可以獲取時間間隔嘛~~

小編今天給大家帶來的,可不是這麼簡單的命令哦~

要麼牛哄哄,要麼軟趴趴!

工具/原料

按鍵精靈2014

方法/步驟

調取系統底層API

GetTickCount函數介紹:

GetTickCount返回(retrieve)從操作系統啟動所經過(elapsed)的毫秒數,它的返回值是DWORD。

函數聲明:

Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long

函數範例:計算當前時間和5秒後的時間差

// 獲取當前時間

TheTime = GetTickCount()

// 延時 5 秒

Delay 5000

// 再次獲取當前時間,計算時間差

TracePrint GetTickCount() - TheTime

運行結果:

用按鍵精靈巧妙獲取時間間隔

獲取時間間隔:函數DateDiff與函數GetTickCount()對比

DateDiff只能獲取到最小單位為:秒的數值

GetTickCount()可以獲取到最小單位為:毫秒的數值

有時候,腳本的成敗往往就在毫秒之間!

範例:等圖找圖大神代碼

來看看大神提供的等圖找圖代碼段吧~~

//聲明函數GetTickCount

Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long

//找出多張圖(hsz.bmp、jsj.bmp、ie.bmp)中的其中一張

TracePrint 找多圖("hsz.bmp jsj.bmp ie.bmp")

//延遲5000ms,等待圖(hsz.bmp)

TracePrint 等圖_毫秒("hsz.bmp",5000)

//延遲5000ms,等待多張圖(hsz.bmp、jsj.bmp、ie.bmp)中的其中一張

TracePrint 等多圖_毫秒("hsz.bmp jsj.bmp ie.bmp",5000)

Function 找多圖_數組(圖像列表)

找多圖_數組 = 0

For i = 0 To UBound(圖像列表)

FindPic 0, 0, Plugin.Sys.GetScRX - 1, Plugin.Sys.GetScRY - 1, "Attachment:\" & 圖像列表(i), 1, intX, intY

If IntX >= 0 Then

找多圖_數組 = i + 1

Exit For

End If

Next

End Function

Function 找多圖(圖像)

找多圖 = 找多圖_數組(split(圖像," "))

End Function

Function 等圖_毫秒(圖片, 超時時間)// 利用兩次 GetTickCount() 得到時間間隔(單位:毫秒)

等圖_毫秒 = TRUE

開始時間 = GetTickCount()

Do

If GetTickCount() - 開始時間 > 超時時間 Then 等圖_毫秒 = FALSE:Exit Do

FindPic 0, 0, Plugin.Sys.GetScRX - 1, Plugin.Sys.GetScRY - 1, "Attachment:\" & 圖片, 1, intX, intY

Loop Until IntX >= 0

End Function

Function 等多圖_毫秒(圖片, 超時時間)// 利用兩次 GetTickCount() 得到時間間隔(單位:毫秒)

開始時間 = GetTickCount()

Do

If GetTickCount() - 開始時間 > 超時時間 Then Exit Do

等多圖_毫秒 = 找多圖(圖片)

Loop Until 等多圖_毫秒

End Function

運行結果:

用按鍵精靈巧妙獲取時間間隔

相關問題答案