fuck_my_wife 发表于 2009-3-16 18:16 只看TA 47楼 |
---|
shutdown.exe 有时候不灵,好像用户切换出来时就不行,我就遇到过,后来是自己写个程序实现的,可能对你有用,有兴趣可以看看: #include <stdio.h> #include <time.h> #include <windows.h> #define EWX_FORCEIFHUNG 16 int main() { int day,hour,minute; char reboot=0; char buf[256]; SYSTEMTIME CurTime; HANDLE hToken; TOKEN_PRIVILEGES tkp; if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken)) { LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); } else { return 0; } printf("Day Of Week:"); scanf("%d",&day); printf("Hour:"); scanf("%d",&hour); printf("Minute:"); scanf("%d",&minute); gets(buf); printf("Reboot?"); scanf("%c",&reboot); if(reboot == 'y') { printf("reboot at %d %02d:%02d\n",day,hour,minute); } else { printf("shutdown at %d %02d:%02d\n",day,hour,minute); } while(1) { GetLocalTime(&CurTime); if(day == 0) { CurTime.wDayOfWeek = day; } if((CurTime.wDayOfWeek == day)&&(CurTime.wHour == hour)&&(CurTime.wMinute == minute)) { printf("Reached!\n"); if(reboot == 'y') { ExitWindowsEx(EWX_FORCE | EWX_REBOOT | EWX_FORCEIFHUNG, 0); } else { ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN | EWX_POWEROFF | EWX_FORCEIFHUNG, 0); } return 0; } Sleep(1000); } return 0; } |
0 |
|
---|
fuck_my_wife的勋章 |
![]() ![]() |
l19830127y 发表于 2009-3-16 18:25 只看TA 48楼 |
---|
hao 不错的方法, 楼主辛苦了,我支持一下![]() |
0 |
|
---|
hgw6656 发表于 2009-3-16 19:00 只看TA 50楼 |
---|
1.利用系统定时关机功能 在系统时间正确的前提下,如果要指定当天定时关机的时间,可以用系统自带的Shutdown命令来实现自动关机,例如需要在24:00关机,可以点击“开始→运行”,在“打开”中输入“at 24:00Shutdown -s”后按“确定”即可。 2.利用定时关机工具 3.利用下载工具自动关机 诸如FlashGet、迅雷、Bitcomet、eMule等下载工具都有下载任务后自动关机的功能。以常用的BitComet0.70为例,运行BitComet,依次点击打开“选项→选项→任务设置”,在“任务下载完成时”项目中勾选“当所有任务都自动停止后关闭电脑”即可。其他工具的设置方法类似,找到相应的选项设置即可。 4.利用杀毒软件自动关机 |
0 |