高分问低能问题:请问windows本身自带的关机程序是什么?在哪里?谢谢。

解决方案 »

  1.   

    static HANDLE hToken; 
    static TOKEN_PRIVILEGES tp; 
    static LUID luid; OpenProcessToken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ; LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME, &luid );  tp.PrivilegeCount = 1;  tp.Privileges[0].Luid = luid;  tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges( hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL );  ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);
      

  2.   

    上面这个适用Win2000/NT
    如果是Win98,
    最后一句就行ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);
      

  3.   

    Win98下: rundll32 user.exe,exitwindows
      

  4.   

    这个是2000/NT下的,98只要最后一句ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);
      

  5.   

    如果不是编程 就运行 rundll32 ...
      

  6.   

    命令列: rundll32.exe user.exe,restartwindows
      功能: 强行关闭所有程式并重启机器。
      命令列: rundll32.exe user.exe,exitwindows
      功能: 强行关闭所有程式并关机。  当然,rundll的功能绝不仅仅是重启你的机器。其实,rundll者,顾名思义,
    执行dll也,它的功能就是以命令列的方式呼叫windows的动态链结库,
    rundll32.exe与rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运
    用於16位的链结库,它们的命令格式是:
      rundll.exe ,,
      这里要注意三点:1.dll档案名中不能含有空格,比如该档案位於
    c:\program files\目录,你要把这个路径改成c:\progra~1\;2.dll档案名与dll
    入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的
    一点:rundll不能用来呼叫含返回值参数的dll,例如win32api中的getusername(),
    gettextface()等。
      

  7.   

    一人给点儿分。
    rundll32 user.exe,restartwindows
      

  8.   

    ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);