Горячие клавиши для бота.

Дополнения к OpenKore, расширяющиее её функциональность, называются плагинами.

Модератор: 4epT

Thunder
Новичок
Сообщения: 7
Зарегистрирован: Вс фев 17, 2008 11:13 am

Горячие клавиши для бота.

Сообщение Thunder »

Ну вот собственно решил плагин написать, который бы это реализовывал.
Интересует именно консольный режим, без всяких там WX.
Горячие клавиши должны быть глобальные, по их нажатию выполняется команда.

Реализуется это, как я понимаю через модуль Win32::API. Его я в бота добавил, все впринципе работает. Для проверки даже старенький плагин на форуме откопал, который при сообщение в приват выдвигал сидюк.

Пример по реализации горячих клавиши, именно на перле, впринципе тоже нашел. Если бы не одно но. В том примере горячие клавиши привязываются к созданному через Win32::GUI окну. Т.е. есть переменная, хранящая окно как объект, и к ней применяется метод hook.

Код: Выделить всё

my $mw = Win32::GUI::Window->new(
   -title => 'HotKey demonstration',
   -left  => CW_USEDEFAULT,
        -size  => [400,300],
   -onMinimize => \&toggle_show_state,
);

# We need to catch WM_HOTKEY messages
$mw->Hook(WM_HOTKEY, \&handle_wm_hotkey);
Короче надо получить окно консоли так, чтобы к нему можно было данный метод применить. Или может еще кто какие-нибудь варианты предложит?

З.Ы. Нашел тут еще вот такую штуку \src\Interface\

Код: Выделить всё

#########################################################################
#  Win32::GUI Interface for OpenKore
#  by: amacc_boy (koreadvance@yahoo.com)
#
#########################################################################
Вот к нему бы я с легкостью горячие клавиши подключил, вопрос в том, как его запустить?
Thunder
Новичок
Сообщения: 7
Зарегистрирован: Вс фев 17, 2008 11:13 am

Сообщение Thunder »

Нашел-таки темку с инфой по запуску этого Win32 GUI интерфейса..
viewtopic.php?t=286
Ох и старый же он, короче не вариант..
Надо думать над тем как прицепить обработчки WM_HOTKEY к консоле.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Есть такая WinAPI функция GetAsyncKeyState, с её помощью можно сделать глобальные горячие клавиши. Конечно немного "кейлоггерный" подход зато достаточно простой.
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Тебе надо - ты и разбирайся ) (полу шутка полу правда)

Тут не в перле надо разбираться, а в фишках примененных пакетов, той же консоли.

И вообще не понятно чего ты хочешь сделать )
vit
Бывалый
Сообщения: 624
Зарегистрирован: Вс мар 25, 2007 9:18 pm
Сервер RO:: localhost
Откуда: Санкт-Петербург

Сообщение vit »

По мне уж проще написать внешнюю программу, которая всё это будет проделывать. К консоли хрен что прицепишь.
Thunder писал(а):Короче надо получить окно консоли так, чтобы к нему можно было данный метод применить. Или может еще кто какие-нибудь варианты предложит?
Я получал в этом плагине по имени перса. Из недостатков - у меня работало только с английскими никами.
Ответить