подскажите как через кибор средствами (командами) WinApi , отправлять нажатия клавиш клавиатуры и мыши в нужное окно
..
1. Greaty - 13 Февраля, 2019 - 04:09:58 - перейти к сообщению
2. Kibor - 13 Февраля, 2019 - 04:30:25 - перейти к сообщению
Сначала надо определиться какую функцию WinApi хочется использовать.
Узнать ее параметры.
Узнать в какой dll она.
Подключить и использовать как в этой теме используются функции WinApi
Получение и обработка сообщений в немодальных окнах Кибор
Узнать ее параметры.
Узнать в какой dll она.
Подключить и использовать как в этой теме используются функции WinApi
Получение и обработка сообщений в немодальных окнах Кибор
3. Greaty - 13 Февраля, 2019 - 04:47:54 - перейти к сообщению
Kibor пишет:
Сначала надо определиться какую функцию WinApi хочется использовать.
Узнать ее параметры.
Узнать в какой dll она.
Узнать ее параметры.
Узнать в какой dll она.
я вообще не знаком с функционалом Winapi поэтому мне не понятно как выполнить эти пункты =(
хотелось бы конкретный пример
допустим отправлять пробел в окно блокнота
Kibor пишет:
Подключить и использовать как в этой теме используются функции WinApi
Получение и обработка сообщений в немодальных окнах Кибор
с этим я разберусь
4. Kibor - 13 Февраля, 2019 - 04:55:15 - перейти к сообщению
Разные функции. Она не одна. Наберите в поиске "как нажать мышь C++" "как нажать мышь программно" и разберитесь что вообще надо.
В окно может отправлять насколько мне известно только sendmessage postmessage. Остальные не отсылают в какое то окно, а просто эмулируют нажатие по координатам.
В окно может отправлять насколько мне известно только 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); // напечатать пробел в блокноте
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); // отпустить левую кнопку мыши
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); // отпустить левую кнопку мыши
#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
sendkeydown
sendkey
sendkeyup
Теперь работает корректно.
И такой код отправит заглавную A
CODE:
win w=window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));
sendkeydown(16, w);
sendkey(65, w);
sendkeyup(16, w);
sendkeydown(16, w);
sendkey(65, w);
sendkeyup(16, w);