реализована функция закрытия окна по нажатию 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 компе из трех... может сталкивались с подобным, решить проблему не прошу. чисто в плане информации спрашиваю.
1. Nathgul - 08 Июля, 2018 - 22:18:49 - перейти к сообщению
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);
}
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);
}
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("ошибка");
}
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);
}
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);
}
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 - перейти к сообщению
У меня такая же ошибка когда-то наблюдалась. Просто спустя произвольное время срабатывал таймер, который отвечал за опрос нескольких кнопок.