2016-09-24 2 views
1

자동 단축키 스크립트의 int 값을 이중으로 변경하는 방법이 있는지 궁금 해서요. 커서를 얼마나 빠르게 움직이고 사용하고 싶습니까? 십진법 값. 내가 십진수 값을 입력 할 수 있다고 생각할 수있는 유일한 방법은 double을 사용하는 것이지만, int 값을 double로 변경하는 방법 (또는 가능한 경우)을 파악할 수 없습니다.Autohotkey | int를 변경하는 방법 double

여기 코드가 있으며 대단히 감사드립니다 !! 내가 소수점

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 값이 더 빨리가는 것을 변경할 것을 알 수 아래의 Y 값을 변경하는 것을 시도하고있다,하지만 난 것으로 기대했다

#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 위치에 값 (예 : 1.5 또는 2.7)을 넣을 수 있습니다.

답변

0

AutoHotkey v1.1에서 부동 소수점 리터럴은 실제로는 인 문자열이며 부동 소수점 출력을위한 소수점 이하 6 자릿수의 기본 정밀도를 가지며 SetFormat, Format(), Round(), SubStr(), Floor()를 사용하여 표시 할 수 있습니다. Source.

더 정밀도가 높은 수학을 수행하려는 경우 Math library을 사용해야합니다.

코드를 정확히 알지 못합니다. 더 정밀도가 필요한 곳에서 어떤 변수를 지정하거나 표시하지 않았기 때문입니다. 너 뭔가 나간거야? 더블

:

당신의 편집을 바탕으로
NRA := 1 

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

:

불행하게도 mouse_eventDWORD excepts 만 4,294,967,295의 범위의 0의 정수 값을 받아 들일 것입니다.

귀하가 선택할 수있는 유일한 방법은 최대 제어를 위해 1 씩 증가하는 것입니다.

+0

죄송합니다. 좀 더 구체적으로 말씀 드리 자면, 변경하려고하는 코드는 DLL 호출 마우스 이벤트의 Y 위치입니다. 나는 진짜로 질문을 편집 할 것이다. –

관련 문제