我想知道是否有办法将自动热键脚本的int值更改为double,因为我试图“微调”光标移动的速度并希望使用小数值。我能想到能够输入十进制值的唯一方法是使用double,但我无法弄清楚如何将int值更改为double(或者甚至可能)。
以下是代码,非常感谢您提前!!
#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)
我知道我改变Y值越高,它越快,但我希望能够将一个值(如1.5或2.7作为例子)放入Y位置。
答案 0 :(得分: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以获得最大控制权。