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

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

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

> Описание: Создание меню и отлов клика по нему, отлов всех сообщений GetMessage полученных окном.
Kibor
Отправлено: 15 Мая, 2019 - 23:55:31
Post Id



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


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




Обновил программу.
Теперь переменные
 Цитата:
message.x - координата мыши X
message.y - координата мыши Y
message.wparam - определяет дополнительную информацию о сообщении. Точное значение зависит от значения члена структуры message
message.lparam - определяет дополнительную информацию о сообщении. Точное значение зависит от значения члена структуры message

локальные для каждой функции событий.

Раньше такой код
CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );



int b1, b2;


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

while(window ("Диалог")==0)sleep(10);
win w=window ("Диалог");


loop()
{
w=window ("Диалог");
textout(1, w.left, w.top, " Не обновляли ", 0);
sleep(1);
}

function getmessage(0, WM_CREATE)//Создаем контролы при создание окна
{
int hwnd=gethwnd(0);
//Создание кнопок
b1=CreateWindow(0, "BUTTON", "Первая кнопка", 1342177280, 10, 10, 120, 30, hwnd, 0, 0, 0);
b2=CreateWindow(0, "BUTTON", "Ворая кнопка", 1342177280, 10, 50, 120, 30, hwnd, 0, 0, 0);
}

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

}



function getmessage(0, WM_LBUTTONDOWN)//Отлавливаем клик правой кнопки мыши всплывающее меню
{
messagebox("1 "+format(message.x));
looptime(2000){}
messagebox("2 "+format(message.x));
}



function getmessage(0, 15)//WM_PAINT Отлавливаем обновление окна
{
textout(1, w.left, w.top, " Обновили окно ", 0);
sleep(100);
}


мог вести себя не корректно, в том случае если пришло событие, к примеру клик мыши и в этой функции необходимо заюзать переменные message.x и message.у. То в случае если код в этой функции долго выполнялся и эти переменные использовались в конце кода, то вызов другого события посреди выполнения функции события мыши перезаписывал эти переменные и в конце функции они имели значения с другого getmessage.

К примеру
CODE:
function getmessage(0, WM_LBUTTONDOWN)//Отлавливаем клик правой кнопки мыши всплывающее меню
{
messagebox("1 "+format(message.x));
looptime(2000){}//В это время кликаем по кнопке и выполнится WM_COMMAND и переменные перзапишутся.
messagebox("2 "+format(message.x));//Тут уже было бы не то значение что в первом сообщение
}

function getmessage(0, WM_COMMAND)
{//Тут перезапишутся переменные
if (message.lparam==b1)messagebox ("Первая кнопка");
if (message.lparam==b2)messagebox ("Ворая кнопка");
}


Устранил. Все переменные на каждое событие изолированы. Локальные. Другим событием не перезапишутся.
 
 Top
Zireael
Отправлено: 16 Мая, 2019 - 02:08:43
Post Id



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


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




Ещё бы добавить возможность включать/отключать обработку события.
 
 Top
Kibor
Отправлено: 16 Мая, 2019 - 02:59:26
Post Id



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


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




 Zireael пишет:
Ещё бы добавить возможность включать/отключать обработку события.


По галке можно делать return после захода.
После return он вернется на строку на которой его прервал.
В логе выглядит так. Потому что последнюю команду он не выполнил, так как в лог пишет до выполнения, а ее выполнение было был прервано. И он повторно на нее вернется.

Такой код
CODE:


loop()
{
sleep(1);
sleep(2);
sleep(3);
sleep(4);
sleep(5);
}


function getmessage(0, WM_LBUTTONDOWN)
{
if(flag_check[0]==0)return;
beep(2500, 100);
}




CODE:
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )
sleep ( 3 )
if ( flag_check [ 0 ] == 0 )
return
sleep ( 3 )
sleep ( 4 )
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )
sleep ( 3 )
sleep ( 4 )
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )
sleep ( 3 )
sleep ( 4 )
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )
sleep ( 3 )
sleep ( 4 )
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )
sleep ( 3 )
sleep ( 4 )
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )
sleep ( 3 )
sleep ( 4 )
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )
if ( flag_check [ 0 ] == 0 )
return
sleep ( 2 )
sleep ( 3 )
sleep ( 4 )
sleep ( 5 )
sleep ( 1 )
sleep ( 2 )



А такой код

CODE:

if (fopen ("c:\5.txt", "w")!=0)
{
loop()
{
fwrite(1);fwrite(ENDL);//з
fwrite(2);fwrite(ENDL);//з
fwrite(3);fwrite(ENDL);//з
fwrite(4);fwrite(ENDL);//з
fwrite(5);fwrite(ENDL);//з
}
fclose();//закрываем файл
}


function getmessage(0, WM_LBUTTONDOWN)//Отлавливаем клик левой кнопки мыши
{
if(flag_check[0]==0)
{
fwrite("return!!!!!!!!!!!!!!!!!!!");fwrite(ENDL);//з
return;
}
fwrite("beep");fwrite(ENDL);//з
beep(2500, 100);
}


Покажет такую запись в файле. То есть реально отработанные строки
CODE:
1
2
3
4
5
1
2
3
4
5
1
2
return!!!!!!!!!!!!!!!!!!!
3
4
5
1
2
3
4
5
1
2
3
 
 Top
Zireael
Отправлено: 04 Июня, 2019 - 10:40:38
Post Id



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


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




Пример как создать скролл (Отобразить)

Пример2 как создать скролл (Отобразить)

Пример3 как создать скролл (Отобразить)
 
 Top
Kibor
Отправлено: 04 Июня, 2019 - 11:12:22
Post Id



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


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




 Zireael пишет:
Пример как создать скролл (Отобразить)

Не все обработано. Не работает клик по полосе.


Скролл (Отобразить)
 
 Top
007wan
Отправлено: 04 Июня, 2019 - 13:33:43
Post Id



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


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




Zireael , Kibor , Спасибо, но где-то я уже это видел...
 
 Top
Dantes3000
Отправлено: 02 Июля, 2019 - 23:13:05
Post Id



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


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




 Zireael пишет:
static2=CreateWindow(0, "STATIC", "", 16+1342177280, 20, 40, 100, 1, gethwnd(0), 0, 0, 0); // горизонтальная линия


как сделать текст такого же шрифта, как эта линия?
 
 Top
Dantes3000
Отправлено: 08 Июля, 2019 - 14:38:36
Post Id



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


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




Почему в edit кириллица отображается иероглифами? Понимаю, что кодировка не та, но как сменить?

Нажмите для увеличения
 
 Top
Zireael
Отправлено: 08 Июля, 2019 - 14:40:09
Post Id



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


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




 Цитата:
Почему в edit кириллица отображается иероглифами?

А откуда взят текст и как он добавлен в edit?
 Цитата:
Понимаю, что кодировка не та, но как сменить?

Функции winapi WideCharToMultiByte и MultiByteToWideChar.

(Отредактировано автором: 08 Июля, 2019 - 14:56:42)

 
 Top
Dantes3000
Отправлено: 08 Июля, 2019 - 15:16:23
Post Id



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


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




 Zireael пишет:
А откуда взят текст и как он добавлен в edit?


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


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




Powered by