Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Программное закрытие Кибор

Страниц (1): [1]
 

1. Nathgul - 08 Июля, 2018 - 22:18:49 - перейти к сообщению
реализована функция закрытия окна по нажатию ctrl+a

CREATE_TIMER(2, 50)
{

if (getkeystate(65)==1 && getkeystate(17)==1)
{
beep(3000, 500);
sleep(200);
beep(3000, 500);
sleep(200);
beep(3000, 500);
sleep(200);
close();
}

запуск таймера разовый в самом начале скрипта, работает до окончания работы скрипта.
иногда при запуске наблюдается его срабатывание произвольное (я уже как то завадал об этом вопрос), отследил... клавиши не нажаты, а программа издает три бипа и офф... пробовал с отключенной клавиатурой, тоже самое... такая проблема лишь на 1 компе из трех... может сталкивались с подобным, решить проблему не прошу. чисто в плане информации спрашиваю.
2. Zireael - 09 Июля, 2018 - 02:43:10 - перейти к сообщению
В приведённом коде не хватает закрывающей фигурной скобки.
3. Nathgul - 09 Июля, 2018 - 03:23:03 - перейти к сообщению
 Zireael пишет:
В приведённом коде не хватает закрывающей фигурной скобки.


CREATE_TIMER(2, 50)
{

if (getkeystate(65)==1 && getkeystate(17)==1)
{
beep(3000, 500);
sleep(200);
beep(3000, 500);
sleep(200);
beep(3000, 500);
sleep(200);
close();
}

}

так лучше)?)))) суть не ушла)
4. Kibor - 09 Июля, 2018 - 03:38:38 - перейти к сообщению
Странно
А если для левого контола

Так?
CODE:
external(INT, "GetAsyncKeyState", "GetAsyncKeyState", "user32.dll");

loop()
{
if (GetAsyncKeyState(65)<0 && GetAsyncKeyState(162)<0)
{
beep(1000, 1000);
}
sleep(10);
}


А так?
CODE:

loop()
{
if (getkeystate(65)==1 && getkeystate(162)==1)
{
beep(1000, 1000);
}
sleep(10);
}
5. AdryV - 09 Июля, 2018 - 05:16:06 - перейти к сообщению
 Nathgul пишет:
иногда при запуске наблюдается его срабатывание произвольное

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

попробуй в начале таймера поставить чет типа
CODE:

int crt=0;// до таймера
//в таймере в начале
if(crt>1)
{
messagebox("ошибка");
}

если выскочит то где-то ошибка с массивом или циклом(for if и тд)....
6. Kibor - 09 Июля, 2018 - 05:38:14 - перейти к сообщению
AdryV , Тут другая проблема.
То что при отжатых кнопках проходит условие.
Но тут что то на той машине.

А по поводу первого срабатывания, то такой код не показал этого.
CODE:


pause(rand(1000, 2000)) ;
int t=gettime();
enabletimer(2);

loop()sleep(10);

CREATE_TIMER(2, 3000)
{
textout(0, 100, 50, "Срабатывание через "+format(gettime()-t), 2);
t=gettime();
beep(1000, 200);
}

7. Nathgul - 09 Июля, 2018 - 05:52:58 - перейти к сообщению
 Kibor пишет:
AdryV , Тут другая проблема.
То что при отжатых кнопках проходит условие.
Но тут что то на той машине.

А по поводу первого срабатывания, то такой код не показал этого.
CODE:


pause(rand(1000, 2000)) ;
int t=gettime();
enabletimer(2);

loop()sleep(10);

CREATE_TIMER(2, 3000)
{
textout(0, 100, 50, "Срабатывание через "+format(gettime()-t), 2);
t=gettime();
beep(1000, 200);
}



я тоже грешу на комп, ибо два других работают как часики... обязательно попробую два варианта и отчитаюсь) думал у меня у одного такая чепуха)
(Добавление)
Для самого теста этих двух примеров нужно пару дней, иобо срабатывает произвольно не всегда.
8. Dantes3000 - 10 Июля, 2018 - 13:21:17 - перейти к сообщению
У меня такая же ошибка когда-то наблюдалась. Просто спустя произвольное время срабатывал таймер, который отвечал за опрос нескольких кнопок.

Powered by ExBB FM 1.0 Final