Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (6): « 1 2 3 4 [5] 6 »   

> Описание: sendmessage и postmessage. Отправка любых сообщений в систему
Zireael
Отправлено: 22 Февраля, 2023 - 10:51:56
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Дайте кусок кода чтобы ставить или снимать галку

CODE:
#define BM_GETCHECK 0x00F0
#define BM_SETCHECK 0x00F1
#define BM_GETSTATE 0x00F2
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001


win w = window ("Отправить в УТМ", "TCheckBox", -1);
if(w) // если окно найдено
{
int state = sendmessage(BM_GETSTATE, 0, 0, w); // получить состояние галки

if(state==BST_UNCHECKED)messagebox("Галка не установлена");
if(state==BST_CHECKED)messagebox("Галка установлена");

sendmessage(BM_SETCHECK, BST_CHECKED, 0, w); // установить галку
pause(2000);
sendmessage(BM_SETCHECK, BST_UNCHECKED, 0, w); // снять галку
pause(2000);
}
else messagebox("Окно не найдено");
 
 Top
Martin
Отправлено: 17 Апреля, 2023 - 23:26:23
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




А как отправить комбинацию клавиш Ctrl+C для копирования выделенного текста? Через sendmessage
 
 Top
Zireael
Отправлено: 18 Апреля, 2023 - 07:48:36
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
А как отправить комбинацию клавиш Ctrl+C для копирования выделенного текста? Через sendmessage

Зажать Ctrl функцией sendkeydown, нажать C функцией send , отпустить Ctrl функцией sendkeyup.
Многие приложения не обрабывают комбинации клавиш в фоновом окне. Иногда работает зажатие клавиш модификаторов функцией keydown, а отправка send, но в таком случае Ctrl будет зажиматься для всех приложений, а не конкретного окна.
 
 Top
Martin
Отправлено: 18 Апреля, 2023 - 19:39:16
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Zireael , а именно через sendmessage как сделать?
Пытался по аналогии сделать.
[quote](для просмотра ссылки Вам необходимо авторизоваться) /quote]
вроде как я понял параметры 0
CODE:
#define WM_COPY 0x0301

win w = window (-1, "Notepad", -1);
if(w) // если найдено
{
sendmessage(WM_COPY,0, 0, w);
}
else messagebox("Окно не найдено");

Но не работает
 
 Top
Zireael
Отправлено: 18 Апреля, 2023 - 20:00:15
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




Martin, сообщение нужно отправлять контролу, а не главному окну.
Для блокнота нужно оправлять в сообщение в edit.
С кодом не могу помочь, т. к. не дома.
 
 Top
Martin
Отправлено: 18 Апреля, 2023 - 20:18:28
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Zireael , Спасибо, так всё работает. А как узнать имя контрл если он не отображается через шпион Кибора?

CODE:
#define WM_COPY 0x0301

win w=window (-1, "Edit", window ("*Безымянный – Блокнот", "Notepad", -1));

if(w) // если найдено
{
sendmessage(WM_COPY,0, 0, w);
}
else messagebox("Окно не найдено");


И ещё вопрос а можно отправить команду в не окно а просто,
так не работает sendmessage(WM_COPY,0,0,-1);
 
 Top
Kibor
Отправлено: 18 Апреля, 2023 - 20:23:44
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Martin пишет:
А как узнать имя контрл если он не отображается через шпион Кибора?

Значит его нет. Есть только окно. В него и шлите.
(Добавление)
 Martin пишет:
команду в не окно а просто,
так не работает sendmessage(WM_COPY,0,0,-1);

Можно. На Деревню Дедушке.
Но Кибор не вынесет синтаксиса. Должен быть адресат.
 
 Top
Martin
Отправлено: 18 Апреля, 2023 - 20:31:12
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Kibor , не отправляет через окно.
(Добавление)
А как отправлять в активное окно?
 
 Top
Kibor
Отправлено: 18 Апреля, 2023 - 20:58:16
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Martin пишет:
А как отправлять в активное окно?


Использовать key(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Martin
Отправлено: 18 Апреля, 2023 - 21:02:47
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Kibor , Понял, так не получится, нужно чтобы ctrl при копирование не нажимался а команда скопировать отправлялась.
 
 Top
Страниц (6): « 1 2 3 4 [5] 6 »
Сейчас эту тему просматривают: 8 (гостей: 8, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by