21. 007wan - 17 Мая, 2019 - 05:27:33 - перейти к сообщению
Kibor , А в чем разница? какие плюсы?
22. Kibor - 17 Мая, 2019 - 05:35:55 - перейти к сообщению
007wan пишет:
А в чем разница? какие плюсы?
Запустите 2 таких скрипта и увидите.
Как второй бот привяжется к первому по его имени.
23. 007wan - 17 Мая, 2019 - 05:37:32 - перейти к сообщению
Kibor ,
Kibor пишет:
Как второй бот привяжется к первому по его имени.
Никак, у каждого бота будет разное название окон)
24. Kibor - 17 Мая, 2019 - 05:39:43 - перейти к сообщению
007wan , Короче я сказал какие плюсы.
Тут он получает указатель внутри себя на себя, а при window на любое окно в системе и зависит от имени окна. Что не есть правильно в данном случае.
Тут он получает указатель внутри себя на себя, а при window на любое окно в системе и зависит от имени окна. Что не есть правильно в данном случае.
25. 007wan - 17 Мая, 2019 - 05:40:12 - перейти к сообщению
А почему не так?
(Добавление)
Kibor , Аааааааааааааааааааааа, понял . блин)
(Добавление)
CODE:
Ведь если диалог не запутится, то обновлять нечего будет, а может вообще не успеть функция, хотя это бред..)win w;
createdialog(0);
//////////
showdialog(0, "Диалог", 58, 234, 250, 300, 1, 1);
//////////
//Тогда уже так лучше думаю
while(window("K2019Bot") == 0)//ждем пока запустится диалог
{
sleep(10);
}
else
{//если запустился, то..
setwindowparam(w);//Обновляет информацию в структуре win по указателю win после открытия окна
messagebox (w.name);
}
loop() sleep(10);//Убрать после теста
function getmessage(0, WM_CREATE)
{
w=formatiw(gethwnd(0));//узнаем указатель по HWND
}
createdialog(0);
//////////
showdialog(0, "Диалог", 58, 234, 250, 300, 1, 1);
//////////
//Тогда уже так лучше думаю
while(window("K2019Bot") == 0)//ждем пока запустится диалог
{
sleep(10);
}
else
{//если запустился, то..
setwindowparam(w);//Обновляет информацию в структуре win по указателю win после открытия окна
messagebox (w.name);
}
loop() sleep(10);//Убрать после теста
function getmessage(0, WM_CREATE)
{
w=formatiw(gethwnd(0));//узнаем указатель по HWND
}
(Добавление)
Kibor , Аааааааааааааааааааааа, понял . блин)
(Добавление)
007wan пишет:
setwindowparam(w);//Обновляет информацию в структуре win по указателю win после открытия окна
Применяется один раз или как window? сколько потребуется..? до нужного результата разумеется
26. Kibor - 17 Мая, 2019 - 05:44:19 - перейти к сообщению
007wan пишет:
while(window("K2019Bot") == 0)//ждем пока запустится диалог
{
sleep(10);
}
else
{//если запустился, то..
setwindowparam(w);//Обновляет информацию в структуре win по указателю win после открытия окна
messagebox (w.name);
}
{
sleep(10);
}
else
{//если запустился, то..
setwindowparam(w);//Обновляет информацию в структуре win по указателю win после открытия окна
messagebox (w.name);
}
не лучше.
Ожидать появление диалога надо для использования window
а тут нам window не нужен, так как HWND мы получили еще в момент создания диалога.
И там же получили на него указатель.
Но на тот момент окна еще нет и мы не знаем его названия, позиции и тд.
Поэтому после создания самого диалога мы обновляем информацию в указателе. setwindowparam
27. 007wan - 17 Мая, 2019 - 05:47:45 - перейти к сообщению
Kibor , Спасибо. понял.
(Добавление)
Последний вопрос:
после того как я использовал setwindowparam после создания диалога, то
(Добавление)
Последний вопрос:
после того как я использовал setwindowparam после создания диалога, то
CODE:
Используется один раз и в этой функции или можно использовать много раз? Если один раз, то указатель не пропадает в других функциях? просто у меня в каждой функции стоит функция, которая получает указатель на мое оно для перестраховки
w=formatiw(gethwnd(0));//узнаем указатель по HWND
28. Kibor - 17 Мая, 2019 - 05:56:32 - перейти к сообщению
HWND один раз получаем . в WM_CREATE
можно и потом, но он никуда не исчезнет. он дается 1 раз
можно и потом, но он никуда не исчезнет. он дается 1 раз
29. 007wan - 17 Мая, 2019 - 05:57:39 - перейти к сообщению
Kibor , Всё, спасибо.
(Добавление)
как сделать, если функция вызвалась за 1-2 секунды больше 10 раз, то не делать resettextout, иначе - делать
(Добавление)
как сделать, если функция вызвалась за 1-2 секунды больше 10 раз, то не делать resettextout, иначе - делать
30. Zireael - 17 Мая, 2019 - 19:48:53 - перейти к сообщению
Цитата:
как сделать, если функция вызвалась за 1-2 секунды больше 10 раз, то не делать resettextout, иначе - делать
CODE:
int x=0;
int t=gettime()+2000;
loop()
{
f();
sleep(100);
}
// если за 2 секунды функция будет вызвана больше 9 раз, то будет сообщение
function f()
{
if(gettime() < t)
{
x++;
if(x>9){x=0; t=gettime()+2000; messagebox("+++");}
}
else {x=0; t=gettime()+2000;}
}
int t=gettime()+2000;
loop()
{
f();
sleep(100);
}
// если за 2 секунды функция будет вызвана больше 9 раз, то будет сообщение
function f()
{
if(gettime() < t)
{
x++;
if(x>9){x=0; t=gettime()+2000; messagebox("+++");}
}
else {x=0; t=gettime()+2000;}
}