HELP с программой на C++

программирование программы windows C++ система

нужно написать оконное (.NET) приложение, в котором будет таймер. По истечении времени должен вырубаться компьютер. думаю всё понятно)

как вырубать комп я знаю (ExitWindowsEx), а как замутить таймер? При этом пользователь должен сам в textBox вводить время в секундах

Примечание:
<<"до определенного времени"<<

пользователь не будет вводить время выключения. он будет задавать ИНТЕРВАЛ, через который будет выключен комп.

Примечание:
конструктор, в твоем варианте куча ошибок. я компилю в MS VC++ 2010 Express, если что. вот пришлось его переделать так:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ myInterval=this->textBox1->Text;
int myIntervalInt=Convert::ToInt32(myInterval);
timer1->Interval=1000*myIntervalInt;
timer1->Enabled=true;
int st = MessageBoxA(NULL,"Время пошло!","Старт",MB_OK);
}
void __clrcall Form1::Timer1Timer(Object^ sender)
{
int s = MessageBoxA(NULL,"Время вышло!","Конец",MB_OK);
}

но всё равно не работает таймер. тоесть если я задал интервал 5 секунд то через 5 секунд ничего не происходит

Примечание:
вот ещё пара поправок в коде)

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ myInterval=this->textBox1->Text;
int myIntervalInt=Convert::ToInt32(myInterval);
this->timer1->Interval=1000*myIntervalInt;
this->timer1->Enabled=true;
this->label2->Visible=true;
this->label3->Visible=false;
}
void __clrcall Form1::Timer1Timer(Object^ sender)
{
this->timer1->Enabled=false;
this->label2->Visible=false;
this->label3->Visible=true;
}

Примечание:
причем таймер успешно запускается, так как я сделал if...else если таймер включен
но почему ничего не происходит?

Примечание:
а всё я разобрался) слава Богу додумался кликнуть по таймеру и вписать выключение в событие Tick)

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
this->timer1->Enabled=false;
if (this->timer1->Enabled==false)
{
this->label2->Visible=false;
this->label3->Visible=true;
}
}
Ответы:
найдите функцию нахождения времени, посчитайте текущее время и while(time() < needed); - пустой цикл, выполняющийся до определенного момента времени
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Timer1->Interval=1000*StrToInt(Edit1->Text);//в Edit1->Text интервал в секундах
 Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  //пишем код на отключение
}


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.