Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aero
0 / 0 / 0
Регистрация: 17.08.2014
Сообщений: 9
#1

Если пользователь ничего не предпринимает в течении нескольких секунд, тогда выполняется какое-либо действие - C++

17.08.2014, 03:28. Просмотров 552. Ответов 9
Метки нет (Все метки)

Ребята, нужно написать программу. Если пользователь ничего не предпринимает в течении нескольких секунд, тогда выполняется какое-либо действие. В этой программе нужно использовать секундомер или таймер. По идее мне нужна функция, которая в определённое время засечёт время и в нужное остановит, но я такой нигде не могу найти. Если такая вообще существует, подскажите пожалуйста.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 03:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Если пользователь ничего не предпринимает в течении нескольких секунд, тогда выполняется какое-либо действие (C++):

сделать чтобы программа считывала данные с сервера,т.е если значение в файле на сервере равно 1 , то выполняется какое-то действие,если нулю то нечего - C++
Как сделать чтобы программа считывала данные с сервера,т.е если значение в файле на сервере равно 1 , то выполняется какое-то действие,если...

else, если какой-либо If не выполняется - C++
Проблема! Почитав Самоучитель я так и не понял - каким образом мне сделать так, чтобы ELSE срабатывало в случае если какой-либо IF не...

Проверить если вполучили число из строки то выполнить какое либо действие - Java
Всем доброго времени суток. Друзья, try { x0 = Double.parseDouble(tfx0.getText()); ...

Как сделать какое-либо действие сразу после запуска программы, без нажатия чего-либо - Delphi
Как сделать какое-либо действие сразу после запуска программы, без нажатия чего-либо?

Определите предикат p(+U, +V, ?L) - истинный тогда и только тогда, когда L - список всех элементов, содержащихся либо в списке U, либо в списке V. - Prolog
Здравствуйте, помогите пожалуйста решить задачу. Заранее благодарна) Определите предикат p(+U, +V, ?L) - истинный тогда и только...

Если ответ от сервера не пришел в течении 45 секунд то - C#
Нужно сделать так: Отсылаем реквест.Если через 45 секунд ответ не пришел или пришел,но плохой,значит пишем в лист бокс: не удалось. ...

9
Brendon
Заблокирован
17.08.2014, 05:01 #2
std::chrono
0
Aero
0 / 0 / 0
Регистрация: 17.08.2014
Сообщений: 9
17.08.2014, 14:53  [ТС] #3
У меня MVC++2010, он почему-то не распознаёт функции chrono, пишет что "std" не содержит члена "chrono".
0
Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
17.08.2014, 15:01 #4
используйте <time.h>
0
-=ЮрА=-
Заблокирован
Автор FAQ
17.08.2014, 22:49 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <windows.h>
 
int main(){
    HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, "EVT");
    while( true )
    {
          if( WaitForSingleObject(hEvent , 1000) != WAIT_OBJECT_0 )
          {
                  //Если пользователь ничего не предпринимает в течении нескольких секунд, тогда выполняется какое-либо действие.
         }
    }
    return 0;
}
- устанвоку ивенты выпонляй в каком либо потоке либо будет тебе тикающий цикл с периодом 1000 мсек
1
Brendon
Заблокирован
17.08.2014, 22:54 #6
Если под Windows, используй QueryPerformanceFrequency и QueryPerformanceCounter
0
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
17.08.2014, 23:08 #7
Простейший вариант: по таймеру проверять значение, полученное через
GetLastInputInfo. Если за энное время оно не поменялось, значит пользователь
не активен, можно предпринимать действия. Ну а как таймер сделать - тут
десятки способов, от банального Sleep в цикле со счетчиком до WM_TIMER или
использования объектов синхронизации типа event или waitable timer.
0
Тамика
Котовчанин
917 / 460 / 145
Регистрация: 16.02.2010
Сообщений: 3,196
Записей в блоге: 27
18.08.2014, 14:55 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я делала так.
Подключаете библиотеку
C++
1
#include <chrono>
А в коде
C++
1
2
3
4
        auto  now = std::chrono::high_resolution_clock::now();
        // код, время которого хотите засечь
        auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::high_resolution_clock::now() - now);
        std::cout << "Time : " << elapsed.count() << "ns.\n";
1
Aero
0 / 0 / 0
Регистрация: 17.08.2014
Сообщений: 9
18.08.2014, 17:49  [ТС] #9
Спасибо большое за ответы

Добавлено через 1 минуту
Тамика, это то, что я очень долго искал, спасибо тебе огромное!!
0
-=ЮрА=-
18.08.2014, 19:50     Если пользователь ничего не предпринимает в течении нескольких секунд, тогда выполняется какое-либо действие
  #10

Не по теме:

Aero, сразу бы сказал что хочешь подсчитать время выполнения кода, а не организовать задержку, для этого крмое хроно есть
QueryPerformanceCounter, GetTickcount и банальный clock http://www.cplusplus.com/reference/ctime/clock/

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2014, 19:50
Привет! Вот еще темы с ответами:

Отправить какое либо действие в приложение - Delphi
Нужно к примеру чтобы программа отправила пакеты в какое либо приложение, по его названию, напишите код пожалуйста

Canvas: при загрузке страницы в течении нескольких секунд плавно отрисовать с нуля до целого круга - HTML5 Canvas
Всем привет, у меня есть круг сделанный с помощью Canvas и сейчас он статичный.Хочу сделать некое подобие круговой загрузки из него, т.е...

Если нет пинга в течении часа до определенного IP то выполнить действие - CMD/BAT
Доброго времени суток! Помогите пожалуйста написать bat файл. Задача проста - если нет пинга до определенного IP в течении часа - то...

Выполнить какое-либо действие спустя 10 минут - Delphi
Здравствуйте, подскажите пожалуйста код что бы по нажатию кнопки Button запускался таймер который скажем через 10 минут выполнял вот этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
18.08.2014, 19:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru