0
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 82 83 84 85 86 87 88
void __fastcall TMainForm::TimerCheckForPowerOffTimeTimer(TObject *Sender)
{
// Обновление текущего времени/дня недели
eDayOfToday->Text = FormatDateTime("dddd", Now() );
DateTimePickerCurrentTime->DateTime = Now();
static already = false; // процесс выключения начался
if( !CheckBox1->Checked ) already = false;
if( CheckBox1->Checked && !already ) // первое срабатываение таймера по времени
{
AnsiString TimeString = TimeToStr(TTime::CurrentTime());
bool TimeToPowerOff = false;
if( cbAllDay->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerAllday->Time) == TimeString );
}
else
{
switch( DayOfWeek( Now() ) )
{
case SUNDAY:
{
if( cbSunday->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerSunday->Time) == TimeString );
}
break;
}
case MONDAY:
{
if( cbMonday->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerMonday->Time) == TimeString );
}
break;
}
case TUESDAY:
{
if( cbTuesday->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerTuesday->Time) == TimeString );
}
break;
}
case WEDNESDAY:
{
if( cbWednesday->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerWednesday->Time) == TimeString );
}
break;
}
case THURSDAY:
{
if( cbThursday->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerThursday->Time) == TimeString );
}
break;
}
case FRIDAY:
{
if( cbFriday->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerFriday->Time) == TimeString );
}
break;
}
case SATURDAY:
{
if( cbSaturday->Checked )
{
TimeToPowerOff = ( TimeToStr(DateTimePickerSaturday->Time) == TimeString );
}
break;
}
} // switch
} // else cbAllDay->Checked
if( TimeToPowerOff )
{
already=true;
SetPermission();
ShutDownPC();
}
} // первое срабатывание
}
Вырезка из программы для выключения питания компа. Данная функция вызывается по таймеру, раз в 900 мс :)
Совпадение времен проверяется сравнением их строкового представления. Ну и в довесок, однообразный код в switch().
Запостил:
absolut ,
19.05.2010 (Updated 24.03.2018 )
Комментарии (0) RSS