利用shutdown.exe作的自动关机程序 Amoon 05/10/02
注: 有关系统管机程序 shutdown 的详细资料,请查看
http://blog.csdn.net/Amoon100/services/trackbacks/493910.aspx
本程序利用之作的自动关机程序.程序界面如下: 制作过程相当简单,只需在vc6下添加一些变量,然后为设置自动关机按钮添加如下消息处理函数即可: void CShutdownDlg::OnButtonSet() //Auto shutdown
{
// TODO: Add your control notification handler code here
UpdateData();
int sel;
sel=CWnd::GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2); switch(sel)
{
case IDC_RADIO1:
m_index=1;
break; case IDC_RADIO2:
m_index=2;
break;
} int min,hour;
char szCommandLine[500];
LPSYSTEMTIME ptime=new SYSTEMTIME;
GetLocalTime(ptime); if(m_index==1)
{
if(m_hour<0||m_hour>=24)
{
MessageBox("请在时钟编辑框中输入 0 到 24 之间的整数 !!","Error!!",MB_ICONERROR);
return ;
}
if(m_min<0||m_min>=60)
{
MessageBox("请在分钟编辑框中输入 0 到 60 之间的整数 !! ","Error!!",MB_ICONERROR);
return ;
}
if(m_hour==0&&m_min==0)
{
MessageBox("您不能在时钟,分钟编辑框中均输入为 0 !!","Error!!",MB_ICONERROR);
return ;
}
hour=ptime->wHour;
min=ptime->wMinute;
min=m_min+min;
if(min>=60)
{
min=min-60;
hour++;
}
if(hour>23)
hour=hour-24;
}
else if(m_index==2)
{ hour=m_time.GetHour();
min=m_time.GetMinute();
} STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi;
sprintf(szCommandLine,"at %d:%d shutdown.exe -s -t 300 -c \"您设置了自动关机,要想取消自动关机,点击 开始 菜单,然后点 [运行] ,在其中输入 :shutdown -a,按确定即可取消自动关机!!\"",hour,min);
//MessageBox(szCommandLine); //ues only to test
if(0==CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi) )
MessageBox("创建进程失败"); delete ptime;
}