2016-09-24 68 views
1

我想知道是否有辦法將自動熱鍵腳本的int值更改爲雙精度,因爲我試圖「微調」光標移動速度有多快,並且想要使用一個十進制值。我能想到能夠輸入十進制值的唯一方法是使用double,但我無法弄清楚如何將int值更改爲double(或者甚至可能)。Autohotkey |如何更改INT爲雙倍

這裏是代碼,非常感謝你提前!

#NoEnv 
SendMode Input 
SetWorkingDir %A_ScriptDir% 

; NRA 
NRA := 1 

; NR 
~LButton:: 
while GetKeyState("LButton") & NRA 
{ 
DllCall("mouse_event", uint, 1, int, 0, int, 1, uint, 0, int, 0) 
Sleep, 15 
DllCall("mouse_event", uint, 1, int, 0, int, 1, uint, 0, int, 0) 
Sleep, 5 
} 
return 

; keys 
Insert::ExitApp 
delete::suspend 

我試圖改變如下所示的Y值是小數點

DllCall("mouse_event", uint, 1, int, 0, int, Y, uint, 0, int, 0) 
Sleep, 15 
DllCall("mouse_event", uint, 1, int, 0, int, Y, uint, 0, int, 0) 

我知道,更高的I改變Y值,走得越快,但我希望自己是能夠將一個值(例如1.5或2.7作爲示例)放入該Y位置。

回答

0

在AutoHotkey v1.1中,浮點文字實際上只是字符串 ,對於浮點輸出它們的默認精度爲6位小數,可以通過SetFormat,Format(),Round() SubStr(),Floor()來顯示它們。 Source

如果你打算做更大的精度數學,你將需要使用Math library

我真的不確定你的代碼,因爲你從來沒有指定什麼變量或顯示任何數學,你需要更高的精度?你有沒有留下什麼?

雙:

NRA := 1 

MsgBox % format("{1:0.15f}", NRA) ; Double precision 

根據您的編輯:

不幸的是mouse_event只節選DWORD和範圍爲0到4,294,967,295只接受整數值。

你唯一的選擇似乎是最大控制增加1。

+0

對不起,我應該更具體一點,我試圖改變的代碼是DLL調用鼠標事件的Y位置。我會很快編輯這個問題 –