AutoHotKey не может отправить событие щелчка мышью в неактивное окно Roblox - PullRequest
0 голосов
/ 29 августа 2018

Я использую AutoHotKey для автоматического нажатия на Roblox , так как многие из игр являются простыми играми-кликерами. Это прекрасно работает, если я использую обычные команды Click или MouseClick , но это фактически перемещает курсор мыши в окно Roblox, чтобы выполнить щелчок. Я надеюсь, что смогу отправлять события щелчка мышью в окно Roblox, пока я что-то делаю на компьютере на другом мониторе с помощью мыши и клавиатуры.

Я считаю, что для этой цели создана команда ControlClick , и, похоже, она работает для других окон (например, текстовых редакторов), но, похоже, не выполняет щелчок в окне Roblox, даже если Roblox является активным / в фокусе окном. Я также пытался использовать команду PostMessage , опять же безуспешно.

Вот некоторые фрагменты кода того, что я пытался использовать:

Метод 1:

; This works, but moves the mouse cursor to the window, which I don't want.
MouseGetPos, mouseX, mouseY, windowId
Loop, 100
{
    Click, %mouseX%, %mouseY%
    Sleep, 10
}

Метод 2:

; This does not actually perform a click in Roblox.
MouseGetPos, mouseX, mouseY, windowId
Loop, 100
{
    ControlClick, x%mouseX% y%mouseY%, ahk_id %windowId%
    Sleep, 10
}

Метод 3:

; This does not actually perform a click in Roblox.
MouseGetPos, mouseX, mouseY, windowId
SetControlDelay -1
Loop, 100
{
    ControlClick, x%mouseX% y%mouseY%, ahk_id %windowId%,,,, NA
    Sleep, 10
}

Метод 4:

; This does not actually perform a click in Roblox.
; Use Window title to match and try sending 2 clicks.
MouseGetPos, mouseX, mouseY, windowId
SetControlDelay -1
Loop, 100
{
    ControlClick, x%mouseX% y%mouseY%, Roblox, , Left, 2
    Sleep, 10
}

Метод 5:

; This does not actually perform a click in Roblox.
MouseGetPos, mouseX, mouseY, windowId
Loop, 100
{
    PostClick(mouseX, mouseY, windowId)
    Sleep, 10
}

PostClick(x,y,windowId) 
{
    lParam := x & 0xFFFF | (y & 0xFFFF) << 16
    PostMessage, 0x201, , %lParam%, , ahk_id %windowId% ;WM_LBUTTONDOWN 
    PostMessage, 0x202, , %lParam%, , ahk_id %windowId% ;WM_LBUTTONUP 
}

Я предполагаю, что эта проблема, вероятно, случается со многими / любыми видеоиграми, не только с Roblox, но я не уверен. Если у вас есть какие-либо идеи или предложения для меня, я буду очень признателен. Спасибо!

...