Что нового

[Автоматизация] поиск окна по handle и нажатие в нем клавиш

Overclocker

Новичок
Сообщения
10
Репутация
0
Версия AutoIt: 3.3.6.1

Описание: Нужен скрипт, при помощи которого бы отлавливалось окно по хэндлу и затем в нем производились программные нажатия кнопок клавиатуры либо мыши, с некоторым интервалом.

Примечания: такой скрипт существует, но он нажимает только одну кнопку клавиатуры - PgDn. Называется Mania Asda Story, приветствуется исходники данной программы либо декомпилятор.
 
Автор
O

Overclocker

Новичок
Сообщения
10
Репутация
0
Напишу последовательность действий.
Программа уже запущена, необходимо:
1) отловить окно программы по ее handle(handle известен);
2) через интервал в 4 секунды нажимать кнопку пробел.
P.S. Если быть точнее скрипт предназначен для автоматизации действий пользователя в игре Фантазиум, в которой стоит GameGuard, писал подобную программу на Delphi, но GG блокирует WinAPI. Не сочтите за читера, но это же никаких нервов не хватит стоять и нажимать кнопку например сутки подряд.
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Стандартно будет так, не знаю прокатит или нет
Код:
$hWnd = ...

While WinExists($hWnd)
	Sleep(4000)
	ControlSend($hWnd, '', '', '{Space}')
WEnd



Добавлено:
Сообщение автоматически объединено:

Поискал инфу по GameGuard, ничего сильно полезного не нашёл.
Был вариант использовать экранную клавиатуру для обхода, может поможет.
 
Автор
O

Overclocker

Новичок
Сообщения
10
Репутация
0
Не работает.

Код:
$hWnd = 0x000703F0

While WinExists($hWnd)
    Sleep(4000)
    ControlSend($hWnd, '', '', '{Space}')
WEnd
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,669
Репутация
2,463
Overclocker [?]
Hwnd меняется при каждом запуске.

Что возвращает такой скрипт:

Код:
MsgBox(64, 'Title', WinExists(0x000703F0))


?
 
Автор
O

Overclocker

Новичок
Сообщения
10
Репутация
0
Тогда как нажимать клавиши с экранной клавиатуры и чтобы они попадали в игру?, по моему GameGuard блокирует и экранную клавиатуру.
Выводит 0, Handle смотрю в AutoIt Window Info
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,669
Репутация
2,463
Overclocker [?]
Тогда как нажимать клавиши с экранной клавиатуры
AutoIt сам умеет отправлять клавиши.

Значит окно не существует. Искать нужно по заголовку или классу.

по моему GameGuard блокирует и экранную клавиатуру
По этому поводу где то была тема...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,669
Репутация
2,463
Overclocker [?]
Как искать по заголовку либо по классу?
Код:
WinGetHandle('[ClASS:Тут Класс;TITLE:Тут заголовок]')

Это есть в справке.
 
Автор
O

Overclocker

Новичок
Сообщения
10
Репутация
0
MsgBox(64, 'Title', WinGetHandle('[CLASS:Фантазиум; TITLE:Фантазиум (RU)]'))
Вот такой код показывает какой хэндл у окна?
При данном коде выходит пустое сообщение.
Как еще поймать адрес окна и нажать в нем кнопку?
 
Автор
O

Overclocker

Новичок
Сообщения
10
Репутация
0
Вот скрин при наведении цели на Фантазиум.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,669
Репутация
2,463
Overclocker [?]
Первый раз вижу класс окна русскими символами.

А если так:

Код:
$hWnd = WinGetHandle('[REGEXPCLASS:.*Фантазиум.*;REGEXPTITLE:.*Фантазиум.*]')


?
:scratch:
 
Автор
O

Overclocker

Новичок
Сообщения
10
Репутация
0
MsgBox(64, 'Title', WinGetHandle('[REGEXPCLASS:.*Фантазиум.*;REGEXPTITLE:.*Фантазиум.*]'))
В таком случае выводится сообщение с хэндлом.


Добавлено:
Сообщение автоматически объединено:

Код:
$hWnd = WinGetHandle('[REGEXPCLASS:.*Фантазиум.*;REGEXPTITLE:.*Фантазиум.*]') 

While WinExists($hWnd)
    Sleep(4000)
    ControlSend($hWnd, '', '', '{Space}')
WEnd
Но нажатие клавиши пробел не происходят.
 
Автор
O

Overclocker

Новичок
Сообщения
10
Репутация
0
axlwor, и? Просто ссылка на игру фантазиум? Как это может помочь в автоматизации процесса нажатия клавиши?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
игрушка защищена ГГ. гугли на тему обхода гг или снятия этого
 

lirikmel

Продвинутый
Сообщения
225
Репутация
84
гугли по Asda story bypass на elitepvpers.de даже найдешь ответ
 
Верх