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

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

 Страниц (16): В начало « 8 9 10 11 [12] 13 14 15 16 »   

> Описание: Создание меню и отлов клика по нему, отлов всех сообщений GetMessage полученных окном.
Zireael
Отправлено: 13 Августа, 2019 - 01:44:37
Post Id



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


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




 Цитата:
edit1=CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, 10, 10, 100, 21, gethwnd(0), 0, 0, 0);
Есть ли возможность писать длинный текст в данном EDIT?

CODE:
#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define ES_AUTOHSCROLL 128
#define ES_AUTOVSCROLL 64
#define ES_MULTILINE 4
#define ES_WANTRETURN 4096
#define WS_VSCROLL 2097152
#define WS_HSCROLL 1048576
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int edit;
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);

loop()sleep(10);

function getmessage(0, WM_CREATE)
{
edit=CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | WS_VSCROLL | WS_HSCROLL |
ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN, 10, 10, 150, 120, gethwnd(0), 0, 0, 0);
}

Не нужные флаги можно убрать.
 
 Top
Budni
Отправлено: 13 Августа, 2019 - 12:52:04
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 418
Дата рег-ции: Март 2018  
Репутация: 2




В чем ошибка? Как сделать когда галочку снимаешь исполнялся код после else

CODE:
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define BS_AUTOCHECKBOX 3


external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int b[5];
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);


win w=window (-1, "MozillaWindowClass", -1);
loop()sleep(1);




function getmessage(0, WM_COMMAND)
{
if (message.lparam==b[0])messagebox ("кнопка");
if (message.lparam==b[1]) {transparency (-1, w);}
else transparency (100, w);

}

function getmessage(0, WM_CREATE)
{
b[0]=CreateWindow(0, "BUTTON", "Кнопка", WS_VISIBLE | WS_CHILD, 10, 10, 120, 30, gethwnd(0), 0, 0, 0);
b[1]=CreateWindow(0, "BUTTON", "Галка", WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX, 10, 50, 120, 30, gethwnd(0), 0, 0, 0);
}
 
 Top
Kibor
Отправлено: 13 Августа, 2019 - 13:04:01
Post Id



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


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




 Budni пишет:
Как сделать когда галочку снимаешь исполнялся код после else


CODE:
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define BS_AUTOCHECKBOX 3


external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int b[5];
createdialog(0);
showdialog(0, "Диалог",100, 100, 300, 300, 1, 1);

int flag=0;
win w=window (-1, "MozillaWindowClass", -1);
loop()sleep(1);




function getmessage(0, WM_COMMAND)
{
if (message.lparam==b[0])messagebox ("кнопка");

if (message.lparam==b[1])
{
if(flag){flag=0; transparency (100, w);}
else {flag=1; transparency (-1, w);}
}

}

function getmessage(0, WM_CREATE)
{
b[0]=CreateWindow(0, "BUTTON", "Кнопка", WS_VISIBLE | WS_CHILD, 10, 10, 120, 30, gethwnd(0), 0, 0, 0);
b[1]=CreateWindow(0, "BUTTON", "Галка", WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX, 10, 50, 120, 30, gethwnd(0), 0, 0, 0);
}
 
 Top
ivantu
Отправлено: 25 Сентября, 2019 - 09:40:04
Post Id



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


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




Друзья, подскажите пожалуйста как можно обрабатывать сообщения от окон, игнорируя паузы в скрипте, просто по логике в программе есть паузы от 1сек - 3 , и зачастую от этих пауз страдает визуальная составляющая, т.к. диалог начинает выжидать, а затем обрабатывать команды, вот пример:

CODE:

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int btn;
createdialog(0);
showdialog(0, "Диалог",150, 200, 400, 300, 1, 0);

loop()pause(5000);

function getmessage (0, WM_CREATE)
{
btn=CreateWindow(0, "BUTTON", "Первая кнопка", 1342177280, 10, 10, 120, 30, gethwnd(0), 0, 0, 0);

}

function getmessage(0, WM_COMMAND)
{
if (message.lparam==btn)messagebox ("Первая кнопка");

}
 
 Top
Dantes3000
Отправлено: 25 Сентября, 2019 - 10:11:17
Post Id



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


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




ivantu ,

CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int btn;
createdialog(0);
showdialog(0, "Диалог",150, 200, 400, 300, 1, 0);

loop() pause_(5000);

function getmessage (0, WM_CREATE)
{
btn=CreateWindow(0, "BUTTON", "Первая кнопка", 1342177280, 10, 10, 120, 30, gethwnd(0), 0, 0, 0);
}

function getmessage(0, WM_COMMAND)
{
if (message.lparam==btn)messagebox ("Первая кнопка");

}


function pause_(int s)
{
looptime(s) sleep(100);
}
 
 Top
ivantu
Отправлено: 25 Сентября, 2019 - 10:28:04
Post Id



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


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




Dantes3000 принципиально не использую sleep в коде, от него Диалог дергается при перемещении... вот и получается замкнутый круг, как всегда все бы вроде хорошо, бац... какая то фигня вылазит.
(Добавление)
Сорян, все работает, Спасибо, извиняюсь.

Код (Отобразить)

(Отредактировано автором: 25 Сентября, 2019 - 10:41:05)

 
 Top
Dantes3000
Отправлено: 25 Сентября, 2019 - 10:38:59
Post Id



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


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




ivantu , так без проблем...
Спойлер (Отобразить)
 
 Top
ivantu
Отправлено: 25 Сентября, 2019 - 10:41:57
Post Id



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


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




Значит loop() работает типо как в отдельном потоке ?
И еще вопрос, не могу сообразить как random паузу сделать по такому же принципу

(Отредактировано автором: 25 Сентября, 2019 - 10:45:21)

 
 Top
Dantes3000
Отправлено: 25 Сентября, 2019 - 10:46:31
Post Id



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


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




ivantu , я был уверен, что pause отличается от sleep тем, что это такой же sleep, только разбитый на мелкие промежутки.

sleep полностью останавливает работу Кибора и не дает выполняться таймерам и getmessage. По идее с pause они должны работать, но нет.
Поэтому looptime(5000) sleep(100); это пауза в 5 секунд, но каждые 100мсек Кибор просыпается и выполняет таймеры и getmessage
(Добавление)
 ivantu пишет:
И еще вопрос, не могу сообразить как random паузу сделать по такому же принципу


pause_(rand(1000, 5000)); //пауза от 1 до 5 сек
 
 Top
ivantu
Отправлено: 25 Сентября, 2019 - 10:51:18
Post Id



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


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




 Dantes3000 пишет:
pause_(rand(1000, 5000)); //пауза от 1 до 5 сек

Благодарю

(Отредактировано автором: 25 Сентября, 2019 - 11:05:33)

 
 Top
Страниц (16): В начало « 8 9 10 11 [12] 13 14 15 16 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by