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

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

1. Greaty - 13 Февраля, 2019 - 04:09:58 - перейти к сообщению
подскажите как через кибор средствами (командами) WinApi , отправлять нажатия клавиш клавиатуры и мыши в нужное окно

..
2. Kibor - 13 Февраля, 2019 - 04:30:25 - перейти к сообщению
Сначала надо определиться какую функцию WinApi хочется использовать.
Узнать ее параметры.
Узнать в какой dll она.
Подключить и использовать как в этой теме используются функции WinApi
Получение и обработка сообщений в немодальных окнах Кибор
3. Greaty - 13 Февраля, 2019 - 04:47:54 - перейти к сообщению
 Kibor пишет:
Сначала надо определиться какую функцию WinApi хочется использовать.
Узнать ее параметры.
Узнать в какой dll она.

я вообще не знаком с функционалом Winapi поэтому мне не понятно как выполнить эти пункты =(
хотелось бы конкретный пример
допустим отправлять пробел в окно блокнота

 Kibor пишет:

Подключить и использовать как в этой теме используются функции WinApi
Получение и обработка сообщений в немодальных окнах Кибор

с этим я разберусь
4. Kibor - 13 Февраля, 2019 - 04:55:15 - перейти к сообщению
Разные функции. Она не одна. Наберите в поиске "как нажать мышь C++" "как нажать мышь программно" и разберитесь что вообще надо.
В окно может отправлять насколько мне известно только sendmessage postmessage. Остальные не отсылают в какое то окно, а просто эмулируют нажатие по координатам.
5. Greaty - 13 Февраля, 2019 - 05:18:14 - перейти к сообщению
как отправить нажатие кнопки пробел в блокнот на WinApi через кибор

можно любой пример по этому тз
6. Zireael - 13 Февраля, 2019 - 05:33:26 - перейти к сообщению
 Цитата:
как отправить нажатие кнопки пробел в блокнот

CODE:
win w=window (-1, "Edit", window (-1, "Notepad", -1));
postmessage(WM_CHAR, 32, 1, w); // напечатать пробел в блокноте

Клик в блокноте:
CODE:
win w=window (-1, "Edit", window (-1, "Notepad", -1));

int x=90;
int y=50;

postmessage(WM_LBUTTONDOWN, 1, y*65536+x, w); // нажать левую кнопку мыши
sleep(10);
postmessage(WM_LBUTTONUP, 1, y*65536+x, w); // отпустить левую кнопку мыши

Клик в абсолютных координатах:
CODE:
#define MOUSEEVENTF_ABSOLUTE 32768
#define MOUSEEVENTF_LEFTDOWN 2
#define MOUSEEVENTF_LEFTUP 4

external(INT, "mouse_event", "mouse_event", "User32.dll" );
external(INT, "SetCursorPos", "SetCursorPos", "User32.dll" );

int x=40;
int y=100;

SetCursorPos(x, y); // установить курсор в координаты x, y
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); // нажать левую кнопку мыши
sleep(100);
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP, x, y, 0, 0); // отпустить левую кнопку мыши
7. Kibor - 17 Февраля, 2019 - 02:18:19 - перейти к сообщению
Поправил
sendkeydown
sendkey
sendkeyup

Теперь работает корректно.
И такой код отправит заглавную A
CODE:
win w=window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));


sendkeydown(16, w);
sendkey(65, w);
sendkeyup(16, w);

Powered by ExBB FM 1.0 Final