Тема: AHK: Поверх всех окон в Windows 10
Тема для обсуждения "Поверх всех окон в Windows 10".
http://forum.script-coding.com/viewtopic.php?id=17660
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Тема для обсуждения "Поверх всех окон в Windows 10".
http://forum.script-coding.com/viewtopic.php?id=17660
О, работает!
Скрипт надо запускать с Run with UI Access:
Только с AutoHotkeyU64_UIA.exe.
У меня работает со всеми версиями AutoHotkeyU**_UIA.exe.
А через Run "C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe" "%ScriptPath%" работает?
У меня почему то только через перетаскивание в проводнике.
Да, работает.
В общем у меня что то неизлечимое с виндой, что ни у кого больше не повторяется.
офф:
Ты недавно писал, что у тебя ОС версии 1809, не в курсе с 1909 есть проблемы, или лучше 1809 переустановить?
Я бы ставил последнюю.
У меня просто LTSC, а у них последняя 1809.
А у тебя получается скомпилировать с AutoHotkeyU**_UIA.exe? У меня в Ahk2Exe.exe нет таких вариантов.
Такой опции в нем не присутствует.
Смотри код install.ahk, там расписано, что надо сделать.
Copies AutoHotkeyA32.exe, AutoHotkeyU32.exe and (if present) AutoHotkeyU64.exe to AutoHotkey*_UIA.exe.
Sets the uiAccess attribute in each UIA file's embedded manifest.
Creates a self-signed digital certificate named "AutoHotkey" and signs each UIA file.
Registers the context menu option to run the appropriate exe file.
Выдаёт ошибку 5. Дело в версии АХК?
Скрипт надо запускать с Run with UI Access
Malcev
Немного непонятно. Я так запускаю скрипты:
;От администратора:
full_command_line := DllCall("GetCommandLine", "str")
If Not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)"))
{
Try
{
If A_IsCompiled
RunWait *RunAs "%A_ScriptFullPath%" /restart
Else
RunWait *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
}
}
If Not A_IsAdmin
{
TrayTip, , Обычные права доступа
;MsgBox,Administrator rights not found, the program might not work correctly.
}
Могу лишь повторить, что запускать надо с UI Access, а не от администратора.
Читайте справку.
Обновил версию AHK +поставил _UIA, но в игре Warface перехват клавиш сильнее, проверить по клавише запустив своё Gui не вышло. Блокирует даже кнопки мыши.
Я предполагал что _UIA версия будет иметь приоритет и перехватывать клавиши чуть ли ни на низком уровне. Похоже античит отключает все перехваты клавиш намертво.
Line := DllCall("GetCommandLine", "str")
if !RegExMatch(Line, " /restart(?!\S)")
RunWait "C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe" /restart "%A_ScriptFullPath%"
А игру запускаете в оконном режиме?
Да, любые настройки какие не делаю - АХК полностью игнорит, будто не запущен. Даже игре расширение окна менял на меньшее, как только мышь вне игры (раб. стол) - перехват есть, только в игру тыкну - снова нет реакций.
Перехватывайте на уровне драйвера.
Сейчас проверил, AHKHID тоже бессильна.
Interception пробовали?
Interception не пробовал. Главное чтобы инжекта не было, думаю забанят сразу.
Если вас интересует тема хакинга игр и много свободного времени, то рекомендую сайт
https://www.unknowncheats.me/forum/index.php
Там ликбеза и куча полезной информации предостаточно.
Не то что бы настолько интересен взлом / читерство в играх, по большему счёту было для меня удивительно обнаружить то, что раньше (год назад) ещё всё работало, а сейчас разработчики игру обновили и всё перестало, да ещё и так сильно перехватывает, что скрипт от админа или с правами _UIA (или как это правильнее) не работают полностью.
Ранее в некоторых играх были случаи, где только мышь можно было перехватывать через AHK, так простой кликер хотя бы можно было назначить, а теперь полный запрет.
Клавиши мультимедиа (управление браузером, клавиши звука и т.д.) в окне игры Warface теперь работают по стандарту, хотя все они перехватываются у меня постоянно загруженным скриптом (от админа).
Посмотрю что ещё можно будет сделать на выходных.
Добавил в первый пост пример, как установить ZBID_UIACCESS в обычное gui с помощью дочернего окна.
У меня так вышло:
if !RegExMatch(DllCall("GetCommandLine", "str"), " /restart(?!\S)")
{
if A_Is64bitOS
RunWait "C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe" /restart "%A_ScriptFullPath%"
else
RunWait "C:\Program Files\AutoHotkey\AutoHotkeyU32_UIA.exe" /restart "%A_ScriptFullPath%"
}
Gui, +AlwaysOnTop +HWNDhGui
Gui, Add, Text,, Please enter your name:
Gui, Add, Edit, vName hwndhEdit
Gui, Show
DllCall("SetWindowBand", "Ptr", hEdit, "Ptr", HWND_TOP := 0, "UInt", ZBID_UIACCESS := 2)
А, нет, SetWindowBand ноль возвращает. Но, похоже, +AlwaysOnTop с UIACCESS достаточно?
Да, достаточно.
Интересный эффект.
Добавил в первый пост.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться