1

Тема: AHK: Передача координат мышки в процентном соотношении в фоновые окна

Искал скрипт, который будет находить координаты в главном окне(игра развернутая на весь экран) и передавать в другие. 
Сейчас у меня имеется вот этот код:

X1:= -3
Y1:= -3
Width1:= A_ScreenWidth 
Height1:= A_ScreenHeight 

X2:= A_ScreenWidth 
Y2:=- 3 
Width2:= 800 
Height2:= 600 


^!W:: RunWows () 
; Key combination ctrl + alt + W will run consecutively window 
^!O:: SetPosWindows () 
; Key combination ctrl + alt + O will put the window on the screen 


SetPosWindows () 
{ 
global InstanceID1 
global InstanceID2 
global X1, Y1, Width1, Height1, X2, Y2, Width2, Height2 

WinMove, ahk_pid% instanceID1%,,% X1%,% Y1%,% Width1%,% Height1% 
WinMove, ahk_pid% instanceID2%,,% X2%,% Y2%,% Width2%,% Height2% 
} 

RunWows () 
{ 
MsgBox, produce, nor any action until they run all the windows. 
Game1:= "C: \ WINDOWS \ system32 \ mspaint.exe" 
PATH1:= "C: \ WINDOWS \ system32 \" 
global instanceID1 
global instanceID2 
Run,% Game1%,% PATH1%,, instanceID1 
sleep 1000 
Run,% Game1%,% PATH1%,, instanceID2 
} 

Clone () 
{ 
global X1, Y1, Width1, Height1, X2, Y2, Width2, Height2 
CoordMode, Mouse, Screen 
MouseGetPos, Cur_X, Cur_Y 
; MsgBox, The active window is at% Cur_X% `,% Cur_Y% 

Send {RButton} 
; Sleep 1 
X_Procent:= (Cur_X-X1) * 100/Width1 
Y_Procent:= (Cur_Y-Y1) * 100/Height1 

; MsgBox, Procent2% X_Procent%,% Y_Procent% 

RealCoordX2:= X2 + (X_Procent * Width2/100) 
RealCoordY2:= Y2 + (Y_Procent * Height2/100) 

; MsgBox, RealCoord% RealCoordX2%,% RealCoordY2% 

; MouseMove, RealCoordX2, RealCoordY2 
MouseClick, right, RealCoordX2, RealCoordY2 
MouseMove, Cur_X, Cur_Y 

} 

CapsChange () 
{ 
SetCapsLockState, OFF 
} 

CapsLock up:: CapsChange () 
CapsLock & RButton up:: Clone ()

На даный момент завис на 20-й строке. Выдает эту ошибку:

Error at line 20.

The following variable name contains an illegal character:
" instanceID1"

The program will exit.

В AHK кодинге я совсем новичек, не могу понять в чем дело Пожалуйста помогите.

2

Re: AHK: Передача координат мышки в процентном соотношении в фоновые окна

Значение переменной обозначается %Var%, а не % Var%, как везде у тебя (после знака процента пробел не ставится). Первый параметр команды WinMove правильно будет ahk_pid %instanceID1% (перед знаком процента пробел, после него — нет). В параметрах этой команды, обозначающих координаты, знаки процента вообще не нужны, т. к. они могут быть выражениями.

WinMove, ahk_pid %instanceID1%,, X1, Y1, Width1, Height1

Почитай раздел "Переменные и выражения".
Дальше ещё одна ошибка: перед и после обратного слэша в указаниях путей пробелы не нужны.

C:\WINDOWS\system32\mspaint.exe
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder