Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
Wanee
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 435
1

Будильник

26.07.2011, 10:16. Просмотров 3962. Ответов 45
Метки нет (Все метки)

Начал делать примитивный будильник и столкнулся с проблемой. Когда комп отправляешь в сон, то будильник не срабатывает. Как сделать чтобы будильник сначала разбудил комп, а потом подал признаки жизни?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <Windows.h>
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
 
void gotoxy(int xpos, int ypos)
{
    COORD scrn;
    HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
    scrn.X = xpos; scrn.Y = ypos;
    SetConsoleCursorPosition(hOuput,scrn);
}
void prin(int x)
{
    if(x < 10)
        cout << '0';
    cout << x;
}
 
void main()
{   
    int c, m, a, b, f, t;
    bool z = true;
    char x[2], y[2], s[6];
 
    SYSTEMTIME st;
    setlocale(LC_ALL, "");
 
    cout << "Введите время: ";
    cin >> s;
 
    x[0] = s[0];
    x[1] = s[1];
    y[0] = s[3];
    y[1] = s[4];
 
    c = atoi(x);
    m = atoi(y);
 
    cout << "Текущие время: \nОсталось: ";
 
    while(z)
    {
        GetSystemTime(&st);
        a = st.wHour + 7;
        b = st.wMinute;
 
        f = c + 24 - a;
        t = m - b;
        if(t < 0)
        {
            f--;
            t += 60;
        }
        if(f > 23)
            f -= 24;
 
        gotoxy(15, 1);
        prin(a);
        cout << ':';
        prin(b);
 
        gotoxy(10, 2);
        prin(f);
        cout << ':';
        prin(t);
 
        if(c == a && m == b)
            z = false;
        Sleep(1000);
    }
 
    cout << "\n\nДля завершения нажмите Enter...";
 
    while(!kbhit())
    {
        cout << '\a';
        Sleep(1000);
    }
}
Время я забиваю к примеру: 23:34
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2011, 10:16
Ответы с готовыми решениями:

Будильник.
Написать программу будильник в С++ .

Будильник
Кто может кинуть будильник на С++ Зарание благодарный!!!!!

Будильник Bada
Так как среда разработки называется bada C++ имею полное право сюда писать....

Нужна программа Музыкальный будильник!
нужна программа Музыкальный будильник!!! Очень срочно

Нужен простой таймер-будильник(консольный)
Играю в БДО(не реклама), и вот понадобился простой таймер, который бы оповещал...

45
-=ЮрА=-
Заблокирован
Автор FAQ
26.07.2011, 10:51 2
Я думаю систему можно разбудить послав сообщение типа WM_MOUSEMOVE (CLICK и т.д.)в систему или же програмно перегрузить комп, думаю это даже проще реализовать + если он стоял сспящим часов 8 перезагрузка в любом случае не помешает
1
Zverit
Уничтожитель печенек
278 / 206 / 49
Регистрация: 07.02.2010
Сообщений: 724
26.07.2011, 11:20 3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
перегрузить комп
Это лишнее будет. Нужно будет дополнительно реализовывать запоминание параметров будильника, автозапуск.
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.07.2011, 11:31 4
Параметры будильника можно заносить в отдельный файл, а при желании можно изголиться и произвести самозапись экзешника, помню пару месяцев назад писал в топике как модифицировать счётчик в самом экзешнике
0
Zverit
Уничтожитель печенек
278 / 206 / 49
Регистрация: 07.02.2010
Сообщений: 724
26.07.2011, 11:34 5
-=ЮрА=-, можно сделать и не такое. Но сказано же
Цитата Сообщение от Wanee Посмотреть сообщение
примитивный будильник
0
Wanee
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 435
26.07.2011, 11:40  [ТС] 6
-=ЮрА=-, что то я не совсем понял что нужно сделать. Вы хотите искусственно нажать клавишу, чтобы пробудить копм?
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.07.2011, 11:41 7
Тогда нужно генерировать события которые будят комп - нажатие клавиатуры, мышь и т.д., по другому простыми способами думаю не реализвать...
0
Wanee
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 435
26.07.2011, 11:44  [ТС] 8
Ясно. А как допустим программно нажать клавишу Enter?
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.07.2011, 11:44 9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Тогда нужно генерировать события которые будят комп - нажатие клавиатуры, мышь и т.д.
Только эти события не сгенерируются, потому что комп спит
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.07.2011, 11:49 10
А с эксплорером работать нельзя?Например отловить хэндл рабочего стола и в это окошко сообщение кинуть???
0
Wanee
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 435
26.07.2011, 11:50  [ТС] 11
Тогда как?
0
jonson
234 / 207 / 84
Регистрация: 18.03.2010
Сообщений: 750
26.07.2011, 11:51 12
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Я думаю систему можно разбудить послав сообщение
при спящем режиме сее не получится. Т.к в этом состоянии не может работать ни один процесс. Это своего рода выключеный режим. Просто все данные из оперативной памяти выгружаются на винт, для последующего быстрого включения.
Как сделать чтобы будильник сначала разбудил комп
думаю ни как. Тут над смотреть в сторону биоса, что-то типа PowerManagment, и вручную настраивать. Может на низком уровне и возможно манипулировать этими опциями биоса, но лично я в этом оч сомневаюсь.
1
-=ЮрА=-
Заблокирован
Автор FAQ
26.07.2011, 11:54 13
Я бы попробовал вот так(для работы нужен windows.h
C++
1
2
HWND hWnd = GetDesktopWindow();
    SendMessage(hWnd,WM_MOUSEMOVE,0,0);
0
Zverit
Уничтожитель печенек
278 / 206 / 49
Регистрация: 07.02.2010
Сообщений: 724
26.07.2011, 11:54 14
Цитата Сообщение от jonson Посмотреть сообщение
Просто все данные из оперативной памяти выгружаются на винт
А не про гибернацию вы случаем говорите?
0
jonson
234 / 207 / 84
Регистрация: 18.03.2010
Сообщений: 750
26.07.2011, 11:56 15
Цитата Сообщение от ITZver Посмотреть сообщение
А не про гибернацию вы случаем говорите?
она самая
1
Zverit
Уничтожитель печенек
278 / 206 / 49
Регистрация: 07.02.2010
Сообщений: 724
26.07.2011, 11:58 16
Цитата Сообщение от jonson Посмотреть сообщение
она самая
Ну тык, гибернация и сон это разные вещи
0
Wanee
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 435
26.07.2011, 12:00  [ТС] 17
Не не, мне нужно из сна вывести.
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.07.2011, 12:00 18
Цитата Сообщение от ITZver Посмотреть сообщение
Ну тык, гибернация и сон это разные вещи
Да вы что? И в чем же разница?
Или вы тоже путаете спящий режим с ждущим?
1
Zverit
Уничтожитель печенек
278 / 206 / 49
Регистрация: 07.02.2010
Сообщений: 724
26.07.2011, 12:06 19
Прошу прощения, попутал. До сих пор думал что ждущий режим это когда монитор отключается и компьютер просто уходит в режим меньшего энергопотребления
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.07.2011, 12:08 20
Вы пишете о биосе и о спящем режиме, хм а что же тогда обрабатывает события щелчка мыши, её движения, кликов по клаве, неужели биос а не ОС???
0
26.07.2011, 12:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2011, 12:08

С чего начать, первая программа на компьютере "Будильник"
Всем привет! Учусь на 3м курсе, для курсовой работы нужно сделать программу...

Прокомментируйте программу "Будильник"
Если с можете помагите с этим программой 3.2 Разработана программа для...

Написать программу "Будильник"
Хочу сделать будильник. Пишу на C++ первый день, до этого практики не было....


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

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

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