Форум программистов CodeGuru
20 Октябрь 2018, 08:54:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Открытие диалогового окна в определенное время  (Прочитано 16150 раз)
0 Пользователей и 1 Гость смотрят эту тему.
InIn
Пользователь
***
Офлайн Офлайн

Сообщений: 52


Просмотр профиля
« : 09 Октябрь 2007, 19:28:07 »

Привет!

Необходимо в программе задать определенное время, примерно так… через неделю, такой-то час. При включении компьютера и запуска этой программы (в которой будет «зашит» этот код), если время просрочено, то автоматически открывалось бы какое-то диалоговое окно.

Из MSDN MS Visual Studio 6.0:

Код:
#include <stdio.h>
#include <sys/timeb.h>
#include <time.h>

void main( void )
{
  struct _timeb timebuffer;
  char *timeline;

  _ftime( &timebuffer );
  timeline = ctime( & ( timebuffer.time ) );

  printf( "The time is %.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20] );
}


Пытался переработать этот код, но, увы, …что-то не срабатывает. Может, кто подскажет действующий вариант?

Всего наилучшего!
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 09 Октябрь 2007, 20:51:14 »

Поскольку это windows, имхо, лучшим решение будет использование функций:
Код:
void GetSystemTime(
 LPSYSTEMTIME lpSystemTime
);

void GetLocalTime(
 LPSYSTEMTIME lpSystemTime
);


Дело в том, что параметром в эти фукции передается указатель на структуру SYSTEMTIME (функции ее заполняют), а в этой структуре время разложено "по полям":
Код:
typedef struct _SYSTEMTIME
{
 WORD wYear;
 WORD wMonth;
 WORD wDayOfWeek;
 WORD wDay;
 WORD wHour;
 WORD wMinute;
 WORD wSecond;
 WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;

Т.е. можно достаточно просто проверить дату (отдельно год, месяц, число месяца, и.т.д.).

Только вот если это делается для защиты... такая защита очень слабая (достаточно ведь будет переводить время назад постоянно).
Записан

InIn
Пользователь
***
Офлайн Офлайн

Сообщений: 52


Просмотр профиля
« Ответ #2 : 09 Октябрь 2007, 23:01:44 »

Спасибо дружище!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!