Тема: AHK: Исправить скрипт перемещения неактивных окон (hold alt&drag)
Помогите, пожалуйста, с этим скриптом:
#SingleInstance,Force
SetWinDelay,0
SetBatchLines,-1
CoordMode,Mouse,Screen
!LButton::
MouseGetPos,oldmx,oldmy,mwin,mctrl
Loop
{
GetKeyState,lbutton,LButton,P
GetKeyState,alt,Alt,P
If (lbutton="U" Or alt="U")
Break
MouseGetPos,mx,my
WinGetPos,wx,wy,ww,wh,ahk_id %mwin%
wx:=wx+mx-oldmx
wy:=wy+my-oldmy
WinMove,ahk_id %mwin%,,%wx%,%wy%
oldmx:=mx
oldmy:=my
}
Return
99GuiClose:
Gui,99:Destroy
OnMessage(0x200,"")
DllCall("DestroyCursor","Uint",hCur)
Return
WM_MOUSEMOVE(wParam,lParam)
{
Global hCurs
MouseGetPos,,,,ctrl
If ctrl in Static9,Static13,Static17
DllCall("SetCursor","UInt",hCurs)
Return
}
ReturnПроблема заключается в том, что он срабатывает и для активного окна, а не должен бы.
Я наивно думал, что добавив #IfWinNotActive в начало скрипта - баг исчезнет, ан нет.
Также, я не очень понимаю суть последних двух блоков кода, поэтому боюсь, что сам не справлюсь и прошу помощи у вас: помогите, пожалуйста!

