如果在win2000中让服务自动定时reset?(50分)

  • 主题发起人 主题发起人 昊海
  • 开始时间 开始时间

昊海

Unregistered / Unconfirmed
GUEST, unregistred user!
如果在win2000中让服务自动定时reset
 
定时就用TTimer吧;
下重启的话就去看看ExitWindowEx函数的说明吧,[:D]
不过在win2000下要先取的权限先!
 
定时,您可根据需要自定,如使用 at  命令或编程等。

一、命令行:iisreset /reboot
二、编程:
#include "stdio.h"
#include "windows.h"
int main()
{
     //定义重起的时候发送给所有用户的消息
     LPSTR msg="Reboot Tool By Lion Hook/nhttp://www.xici.net";
     //尝试用最简单的API函数重起
     if(ExitWindowsEx(EWX_REBOOT, 0))return TRUE;
     if(ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0))return TRUE;
     //因为上面的重起不成功,所以需要调整本进程的特权
     HANDLE hToken;
     TOKEN_PRIVILEGES tkp;
     if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return FALSE;
     //获取重起的特权SE_SHUTDOWN_NAME
     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);
     //判断是NT内核还是9x内核,选择用不同的方式
     if(!(GetVersion() & 0x80000000))
       InitiateSystemShutdown(NULL, msg, 20, TRUE, TRUE);
     else if (!ExitWindowsEx(EWX_REBOOT, 0))
         if(!ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0))
            return FALSE;
     return TRUE;
}
 
to zhaqiong:
命令行:iisreset /reboot好像不灵也
 
iisreset /reboot
然后在附件|任务计划里面加上这个批处理就行了
 
多人接受答案了。
 
后退
顶部