Witam,
Proszę o sprawdzenie działania programu.
Kod programu
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
SYSTEMTIME czas,czaszam;
bool STOP=false;
bool halt=false;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
GetSystemTime(&czas);
CSpinEdit4->Value=czas.wHour+1;
CSpinEdit5->Value=czas.wMinute;
CSpinEdit6->Value=czas.wSecond;
Label1->Caption="Aktualny Czas"+IntToStr(czas.wHour+1)+":"+IntToStr(czas.wMinute)+":"+
IntToStr(czas.wSecond);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
GetSystemTime(&czas);
halt=false;
if(RadioButton1->Checked==true)
{
czaszam.wHour=czas.wHour+CSpinEdit1->Value ;
if (czaszam.wHour>=24){czaszam.wHour=czaszam.wHour-24;}
czaszam.wMinute=czas.wMinute+CSpinEdit2->Value;
if (czaszam.wMinute>=60){czaszam.wMinute=czaszam.wMinute-60;}
czaszam.wSecond=czas.wSecond+CSpinEdit3->Value;
if (czaszam.wSecond>=60){czaszam.wSecond=czaszam.wSecond-60;}
Label5->Caption="System zostanie wyłaczony o godzinie"+ IntToStr(czaszam.wHour+1)+":"+
IntToStr(czaszam.wMinute)+":"+IntToStr(czaszam.wSecond);
}
else
{
czaszam.wHour=CSpinEdit4->Value-1;
czaszam.wMinute=CSpinEdit5->Value ;
czaszam.wSecond=CSpinEdit6->Value;
Label5->Caption="system zostanie wyłączony o godzinie"+IntToStr(czaszam.wHour)+":"+
IntToStr(czaszam.wMinute)+":"+IntToStr(czaszam.wSecond);
}
while(!(czas.wHour && czas.wMinute==czaszam.wMinute &&
czas.wSecond==czaszam.wSecond))
{
for(;;){Application->ProcessMessages();
if(STOP!=false)
{STOP=false;
break;}}
GetSystemTime(&czas);
Label1->Caption="Aktualny czas" + IntToStr(czas.wHour+1)+":"+ IntToStr(czas.wMinute)+":"+
IntToStr(czas.wSecond);
if (halt==true){
break;}}
if (halt !=true)
{
WinExec("shutdown -f -s",SW_SHOW);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
halt=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
exit;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
STOP=true;
}
//---------------------------------------------------------------------------
Mój problem polega na tym, że opcja “wyłącz o wskazanej godzinie” działa poprawnie, komputer się wyłącza, natomiast opcja “wyłącz po wskazanym czasie” w ogóle nie działa.
Proszę o sprawdzenie programu.
Zamieszczam rozmieszczenie obiektów na formie: http://img233.imageshack.us/img233/4637/programb.jpg
Dziękuję za pomoc.