求一个自动关机的c++代码(c也可以)要求:不能用system函数

貌似用那个api阿啥的... 貌似用那个api阿啥的 展开
 我来答
飞天大猩猩
2012-01-28 · TA获得超过1351个赞
知道小有建树答主
回答量:309
采纳率:50%
帮助的人:158万
展开全部
这样,先要两个tgroupbox组件:groupbox1和groupbox2,其caption属性分别设置为“当前系统时间”和“预设关机时间”。在这两个组件上再放置4个tdatetimepicker组件:datetimepicker1、datetimepicker2和datetimepicker3、datetimepicker4,其中前两个分别用于显示当前系统的日期和时间,后两个用于设置自动关机的日期和时间,tcheckbox组件:checkbox1(其caption属性设置为“自动关机生效”)和一个ttimer组件:timer1(其interval属性取缺省值1000)。

void __fastcall tform1::formcreate(tobject *sender)

  {

  checkbox1->checked=false;

  //初始设置为不可访问

  checkbox1->enabled=false;

  datetimepicker4->datetime=now();

  datetimepicker3->datetime=now();

  datetimepicker2->datetime=now();

  //用系统时间初始化组件

  datetimepicker1->datetime=now();

  }

  在组件timer1的ontimer事件过程中编写如下代码:

  void __fastcall tform1::timer1timer(tobject *sender)

  {

  datetimepicker2->datetime=now();

  //接收当前日期和时间,用于即时显示

  datetimepicker1->datetime=now();

  //随时检测设定的关机日期和时间是否有效

  if(datetimepicker4->datetime < now())

  {

  checkbox1->checked=false;

  //无效时不可访问

  checkbox1->enabled=false;

  }

  else

  checkbox1->enabled=true; //有效时可以访问

  if(checkbox1->checked == true && datetimetostr(datetimepicker4->datetime) == datetimetostr(now()))

  {//判断定时关机条件是否满足

  dword tmp;

  //调用win api函数关闭计算机

  exitwindowsex(ewx_shutdown,tmp);

  }

  }
组件datetimepicker3和datetimepicker4的onchange事件过程的代码相类似,为使这两个组件所设置的日期和时间“联动”(同时变化),组件datetimepicker3的onchange代码设置如下: void __fastcall tform1::datetimepicker3change(tobject *sender)

  {//组件变化“联动”

  datetimepicker4->datetime=datetimepicker3->datetime;

  //检测设置的日期是否有效

  if(datetimepicker4->datetime < now())

  {

  checkbox1->checked=false;

  checkbox1->enabled=false;

  }

  else

  checkbox1->enabled=true;

  }

  组件datetimepicker4的onchange代码设置如下:

  void __fastcall tform1::datetimepicker4change(tobject *sender)

  {//组件变化“联动”

  datetimepicker3->datetime=datetimepicker4->datetime;

  //检测设置的时间是否有效

  if(datetimepicker3->datetime < now())

  {

  checkbox1->checked=false;

  checkbox1->enabled=false;

  }

  else

  checkbox1->enabled=true;

  }

嗯这个是原理:上面的半部分用于即时显示当前系统的日期和时间信息,下面的半部分用于设置自动关机的日期和时间。当系统时间和设置的关机时间吻合(相等)并且“自动关机生效”被选中时,计算机将自动关闭。其中,只有当所设定的关机时间在有效范围内时(即大于系统时间),“自动关机生效”才能被激活。就是一个倒计时关机程序。这样计算机就关掉niao。不过系统指令调用简单你为啥不用。直接因酷路的往下写。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char a[50];
int b;
cout<<"请输入关机时间:(秒)"<<endl;
cin>>b;
sprintf(a,"shutdown -s -f -t %d",b);
system(a);
return 0;
}
淦海瑶s1
2012-01-28 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:798万
展开全部
不能调用dos命令,只能调用api函数了,具体哪个我不知道,你查一下就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式