1

Тема: AHK: Неработающий UI Access

Всех с Новым годом.
У меня имеется небольшой скрипт, который работает не на всех ПК.

if (!A_IsCompiled && !InStr(A_AhkPath, "_UIA")) {
    Run % "*uiAccess " A_ScriptFullPath
    ExitApp
}

if (A_IsAdmin = false) {
    ;msgbox, not admin
   Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
   ExitApp
}
SendMessage, 0x50,, 0x4190419,, A

!U::
SendPlay, Тут могла быть ваша реклама {enter}
return
Escape::
ExitApp

Скрипт обязательно должен быть запущен с UI Access, без него текст вообще никак не вводится (игра Multi Theft Auto).
Если я его запускаю на компьютере, то при нажатии Alt + U вводится соответствующее сообщение, а если запускаю на ноутбуке, то при нажатии комбинации ничего не происходит, как будто UI Access не действует.
Также пытался использовать запуск с исп. UI Access, как показано в теме - https://forum.script-coding.com/viewtopic.php?pid=158701, результат такой же.
Очень интересно, от чего это может зависеть.
На обоих ПК установлена Windows 11, AHK v.1.1.34.03.

2

Re: AHK: Неработающий UI Access

ivanday1 Не уверен что верно, но проверьте этот код:

#SingleInstance Force

If !InStr(A_AhkPath, "_UIA"){
 Run % "*uiAccess " A_ScriptFullPath
 ExitApp
}
If !A_IsAdmin{
 RunWait *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
 ExitApp
}
MsgBox, % "Admin: " A_IsAdmin "`nA_AhkPath: " A_AhkPath
Return
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

3

Re: AHK: Неработающий UI Access

Ну, вроде оно запускается с UI Access, по крайней мере в MsgBox указан путь к UIA.exe и запущено от имени админа, но всё равно в игре не вводится сообщение - проверял на ноутбуке.
К сожалению, возможности проверить на компьютере сейчас нет.

4

Re: AHK: Неработающий UI Access

Возможно в этом виновато обновление античита.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

5

Re: AHK: Неработающий UI Access

Провёл тесты на компьютере и на ноутбуке со следующим кодом:

#SingleInstance Force

If !InStr(A_AhkPath, "_UIA"){
 Run % "*uiAccess " A_ScriptFullPath
 ExitApp
}
If !A_IsAdmin{
 RunWait *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
 ExitApp
}
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#KeyHistory 0
ListLines Off
Process, Priority, , H
SetBatchLines, -1
SetWinDelay, -1
SetControlDelay, -1
StringCaseSense, Locale
SendMode InputThenPlay
MsgBox, % "Admin: " A_IsAdmin "`nA_AhkPath: " A_AhkPath

sChat() {
 SendMessage, 0x50,, 0x4190419,,A
tooltip, go
SendInput, {F8}
Sleep, 100
SendInput, ^v
}

!Y:: ;Что бы вызвать текст нужно нажать Alt + Y
sChat()
return
Escape::
ExitApp

На компьютере при нажатии Alt + Y нажимается F8 (открытие консоли в игре), затем Ctrl + V (для вставки сообщения из буфера обмена).
На ноутбуке при нажатии Alt + Y ничего не происходит (только tooltip срабатывает).

Также заметил особенность, что если на компьютере запустить SciTE4 от имени админа, в нём открыть этот код и запустить его - он также не будет работать. Нужно запускать именно через проводник.
На ноутбуке как не запускай - всё равно не работает. Но также заметил, что если запускать через проводник двойным кликом - он открывается в SciTE4, а не запускается. Поэтому запускал через ПКМ - открыть с помощью AutoHotkey Unicode 64-bit.

6

Re: AHK: Неработающий UI Access

ivanday1 По умолчанию скрипты должны открываться стандартным 'AutoHotkey.exe'. Возможно из-за этого проблемы. Переустановить попробуйте.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

7

Re: AHK: Неработающий UI Access

__Михаил__ Удивительно, всё получилось, хотя раньше я тоже переустанавливал.

Что сейчас сделал:
Через панель управления удалил SciTE4, затем оттуда же удалил AutoHotkey.
Затем установил версию 1.1.34.03 AHK, запустил скрипт - заработал.
Установил SciTE4, при установке убрал первую галочку, что-то вроде запускать файлы .ahk через editor. Но всё равно при запуске .ahk через проводник открывался SciTE4 editor и скрипт снова перестал работать. Пришлось всё делать по новой, но главное всё заработало, спасибо.

8

Re: AHK: Неработающий UI Access

Снова приветствую. К сожалению, плохо протестировал..
Потому что всё работает только тогда, когда запущена игра в меню. А когда уже подключаешься на сервер - то при нажатии на Alt + Y ничего не происходит, кроме появления ToolTip.
Что с этим можно сделать?

9

Re: AHK: Неработающий UI Access

ivanday1 Протестируйте разные варианты отправки нажатий клавиш. Например обычный 'Send'.

Send, ^{v}
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

10

Re: AHK: Неработающий UI Access

__Михаил__ Потестировал, к сожалению, на ноутбуке ничего не срабатывает.

Заметил, что срабатывает ControlSend:

ControlSend,, привет poka, MTA: San Andreas

Но есть одно но, если включена русская раскладка, то пишет только "привет", если включена английская, то только "poka".

Также попробовал:

ControlSend,, {LCtrl Down}, MTA: San Andreas
ControlSend,, v, MTA: San Andreas

Но это не сработало, причём "v" не напечаталось.

Я уже не знаю, в чём может быть дело, может потому что на компьютере Intel + GeForce, а на ноутбуке AMD + Radeon...