Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Горячие клавиши

Страниц (1): [1]
 

1. Redear - 23 Февраля, 2023 - 11:40:18 - перейти к сообщению
пытался найти ответ на форуме, безуспешно.

как сделать максимально ненагружаемое на бота отслеживание нажатой горячей клавиши. есть варианты?

таймер + гетстат? но по факту таймер должен висеть и чекать каждые 10 милисек коавишу.

есть другие варианты?
2. Zireael - 23 Февраля, 2023 - 12:09:28 - перейти к сообщению
CODE:
#define MOD_ALT 1
#define MOD_CONTROL 2
#define MOD_SHIFT 0x0004
external(INT, "RegisterHotKey", "RegisterHotKey", "User32.dll");
createdialog(2);

textbkcolor(65280, 0);
textout(0, 300, 20, "Нажмите Z или Alt + 2 или Ctrl + 3", 0);
loop()sleep(10);


function getmessage(2, WM_CREATE)
{
// регистрируем хоткей
RegisterHotKey(gethwnd(2), 111, 0, 90); // 111 - идентификатор (любое число), 90 - код клавиши z
RegisterHotKey(gethwnd(2), 222, MOD_ALT, 50); // Alt + 2
RegisterHotKey(gethwnd(2), 333, MOD_CONTROL, 51); // Ctrl + 3
}

function getmessage(2, WM_HOTKEY)
{
if(message.wparam==111)messagebox("Нажата клаиша Z");
if(message.wparam==222)messagebox("Нажаты Alt + 2");
if(message.wparam==333)messagebox("Нажаты Ctrl + 3");
}
3. Redear - 23 Февраля, 2023 - 12:38:53 - перейти к сообщению
 Zireael пишет:
CODE:
#define MOD_ALT 1
#define MOD_CONTROL 2
#define MOD_SHIFT 0x0004
external(INT, "RegisterHotKey", "RegisterHotKey", "User32.dll");
createdialog(2);

textbkcolor(65280, 0);
textout(0, 300, 20, "Нажмите Z или Alt + 2 или Ctrl + 3", 0);
loop()sleep(10);


function getmessage(2, WM_CREATE)
{
// регистрируем хоткей
RegisterHotKey(gethwnd(2), 111, 0, 90); // 111 - идентификатор (любое число), 90 - код клавиши z
RegisterHotKey(gethwnd(2), 222, MOD_ALT, 50); // Alt + 2
RegisterHotKey(gethwnd(2), 333, MOD_CONTROL, 51); // Ctrl + 3
}

function getmessage(2, WM_HOTKEY)
{
if(message.wparam==111)messagebox("Нажата клаиша Z");
if(message.wparam==222)messagebox("Нажаты Alt + 2");
if(message.wparam==333)messagebox("Нажаты Ctrl + 3");
}



спасибо, немного не понятно, нет ли ошибки, почему название функции getmessagе повторяются
4. Zireael - 23 Февраля, 2023 - 12:56:55 - перейти к сообщению
 Цитата:
нет ли ошибки

Нет.
 Цитата:
почему название функции getmessagе повторяются

В данном случае это не название функции, а способ указать какое сообщение нужно обработать.

Powered by ExBB FM 1.0 Final