Форум программистов, компьютерный форум CyberForum.ru

Таймер выключения пк - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
SleshBaster
2 / 2 / 0
Регистрация: 09.09.2011
Сообщений: 68
22.02.2012, 13:51     Таймер выключения пк #1
Нужна прога Таймер выключения пк на языке С
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2012, 13:51     Таймер выключения пк
Посмотрите здесь:

C++ таймер
C++ Таймер
C++ таймер
C++ Твикер для Windows для выключения визуальных эффектов
C++ Программа для включения/выключения WiFi у роутера
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
22.02.2012, 16:13     Таймер выключения пк #2
Вот простенько и сердито
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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    int hour, min, sec;
    time_t t;
    time(&t);
    tm   *tm    = localtime(&t);
    char *sDate = asctime(tm);
    cout<<"current time : "<<sDate;
    cout<<"enter time of shutdown\n";
    cout<<"hour   : ";cin>>hour;
    cout<<"minute : ";cin>>min;
    cout<<"second : ";cin>>sec;
    time(&t);
    tm    = localtime(&t);
    sDate = asctime(tm);
    long nSec   =   (hour - tm->tm_hour)*3600 + 
                    (min  - tm->tm_min)*60  + 
                    (sec  - tm->tm_sec);
    long start = clock();
    long tick;
    while(0 < nSec)
    {
        if((((tick = clock()) - start)/CLOCKS_PER_SEC) == 1)
        {
            system("cls");
            cout<<"time of start : "<<sDate;
            cout<<"Seconds for shutdown : "<<nSec<<endl;
            start = tick;
            nSec = nSec - 1;
        }
    }
    system("shutdown -s -t05");
    return 0;
}
Миниатюры
Таймер выключения пк   Таймер выключения пк  
-=ЮрА=-
Заблокирован
Автор FAQ
22.02.2012, 23:07     Таймер выключения пк #3
Тот же код чисто на Си
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    int hour, min, sec;
    time_t t;
    time(&t);
    tm   *tm    = localtime(&t);
    char *sDate = asctime(tm);
    printf("current time : %s",sDate);
    printf("enter time of shutdown\n");
    printf("hour   : ");scanf("%u",&hour);
    printf("minute : ");scanf("%u",&min);
    printf("second : ");scanf("%u",&sec);
    time(&t);
    tm    = localtime(&t);
    sDate = asctime(tm);
    long nSec   =   (hour - tm->tm_hour)*3600 + 
                    (min  - tm->tm_min)*60  + 
                    (sec  - tm->tm_sec);
    printf("time of start : %s",sDate);
    printf("Seconds for shutdown : %u\n",nSec);
    long start = clock();
    long tick;
    while(0 < nSec)
    {
        if((((tick = clock()) - start)/CLOCKS_PER_SEC) == 1)
        {
            system("cls");
            printf("time of start : %s",sDate);
            printf("Seconds for shutdown : %u\n",nSec);
            start = tick;
            nSec = nSec - 1;
        }
    }
    system("shutdown -s -t05");
    return 0;
}
Изображения
 
-=ЮрА=-
Заблокирован
Автор FAQ
22.02.2012, 23:15     Таймер выключения пк #4
SleshBaster, запишите
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
system("shutdown -s -t_05");
с пробелом(он отмечен красным) - т.е.
C
1
system("shutdown -s -t 05");
и да прибудет с вами сила!

Добавлено через 17 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
time(&t);
- получили время в милисекундах от 1 января 1970(грубо говоря это стандартная дата отсчёта)см тут http://www.cplusplus.com/reference/clibrary/ctime/time/
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
tm * *tm * *= localtime(&t);
- перевели эти милисекунды в поля структуры tm см здесь http://www.cplusplus.com/reference/c...ime/localtime/
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
char *sDate = asctime(tm);
- теперь уже перевели эти поля в строковый вид(в общем в строку с датой и временем), подробней здесь http://www.cplusplus.com/reference/c...ctime/asctime/
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
printf("current time : %s",sDate);
printf("enter time of shutdown\n");
printf("hour * : ");scanf("%u",&hour);
printf("minute : ");scanf("%u",&min);
printf("second : ");scanf("%u",&sec);
time(&t);
tm * *= localtime(&t);
sDate = asctime(tm);
- тут всё должно быть понятно и начинающему...
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
long nSec * = * (hour - tm->tm_hour)*3600 +
* * * * * * * * * * * * * * * * * * * * (min *- tm->tm_min)*60 *+
* * * * * * * * * * * * * * * * * * * * (sec *- tm->tm_sec);
- почитали скольже наш ввод часов минут и секунд до отключения будет в секундах, т.е. 1 ч 25 мин 3 сек = 3600 + 25*60 + 3 = 5103 сек

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
long start = clock();
- вернёт системное время в тиках проца(не заморачиваемся величиной)
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(0 < nSec)
* * * * {
- начали крутиться в цикле пока не исчерпаем секунды(в общем FinalCountdown - то бишь отсчёт времени до отключения)

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if((((tick = clock()) - start)/CLOCKS_PER_SEC) == 1)
ick = clock()) - start - даст разницу в тиках проца прошедшую от запуска цикла
CLOCKS_PER_SEC - универсальная константа переводящая тики в сикунды
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
system("cls");
//Чистим экран
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
* * * * * * * * * * * * printf("time of start : %s",sDate);
* * * * * * * * * * * * printf("Seconds for shutdown : %u\n",nSec);
* * * * * * * * * * * * start = tick;
* * * * * * * * * * * * nSec = nSec - 1;
Так вот как только натикали секунду от запуска меняем start на tick и уменьшаем на секунду запас оставшегос времени
Ну а этим
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
system("shutdown -s -t 05");
передаём в стандартную утилиту Windows shutdown.exe параметры -s -t 05 (s - завершение работы t - таймаут завершения - у меня это 5 сек, я запарился и написал t слитно с 05 а надо было через пробел - вот и весь баг)

PS:И помните моя програмулька отрубит комп в любом случае после отработки system("shutdown -s -t 05") - вы уже никак не сможите остановить процесс выключения, даже дядя Билл Гейц не остановит. Так что предварительно завершайте процессы в которых возможно потерять данные...
Yandex
Объявления
22.02.2012, 23:15     Таймер выключения пк
Ответ Создать тему
Опции темы

Текущее время: 08:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru