谁有windows快速关机的代码?winNT ,win9x

解决方案 »

  1.   

    procedure ShutDownSystem;
    var
        hProcess, hAccessToken: THandle;
        LUID_AND_ATTRIBUTES: TLUIDAndAttributes;
        TOKEN_PRIVILEGES: TTokenPrivileges;
        BufferIsNull: DWord;
    const
        SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
    begin
        //VER_PLATFORM_WIN32s = 0;
        //VER_PLATFORM_WIN32_WINDOWS = 1;
        //VER_PLATFORM_WIN32_NT = 2;
        if Win32PlatForm = VER_PLATFORM_WIN32_NT then
        begin //WindowsNT
            hProcess := GetCurrentProcess;
            OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hAccessToken);
            LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, LUID_AND_ATTRIBUTES.Luid);
            LUID_AND_ATTRIBUTES.Attributes := SE_PRIVILEGE_ENABLED;
            TOKEN_PRIVILEGES.PrivilegeCount := 1;
            TOKEN_PRIVILEGES.Privileges[0] := LUID_AND_ATTRIBUTES;
            BufferIsNull := 0;
            AdjustTokenPrivileges(hAccessToken, False, TOKEN_PRIVILEGES, sizeof(TOKEN_PRIVILEGES), nil, BufferIsNull);
        end;
        ExitWindowsEx(EWX_POWEROFF, 0);
    end;
      

  2.   

    兩個api函數﹐
    InitiateSystemShutdownEx
    或者
    ExitWindows
    試試关闭系统 
      对于某些特殊的应用程序,可能需要进行关闭系统的操作,可以调用函数ExitWindows 或者ExitWindowsEx 来实现。   在Delphi中函数ExitWindows 的语法如下:   function ExitWindows(dwReserved: Cardinal; Code: Word): LongBool;   如果调用该函数成功,则返回True,否则返回False ;成功调用该函数将执行“关闭所有程序并以其他身份登录(Windows 95)”或“注销(Windows 98)”操作。其中的参数dwReserved和参数Code都必须是0 。   例如,要实现注销操作,只需要在适当的位置写入如下语句:   ExitWindows(0, 0);   执行关闭计算机或重新启动计算机的操作,可以通过调用函数ExitWindowsEx 来实现。   在Delphi中函数ExitWindowsEx 的语法如下:   function ExitWindowsEx(uFlags, dwReserved: Cardinal): LongBool;   如果调用该函数成功,则返回True,否则返回False ;其中的参数uFlags的不同将决定执行不同的关闭操作:   EWX_FORCE 强制终止所有的进程。如果设置了此参数,Windows 将不会向正在运行的应用程序发送消息WM_QUERYENDSESSION和WM_ENDSESSION ,这将可能导致数据丢失。因此,除非特别紧急或特别的情况(如应用程序死锁或系统资源濒临崩溃等),不要使用该参数。   EWX_LOGOFF 关闭所有与当前调用函数ExitWindowsEx 相关的进程并注销用户。   EWX_POWEROFF关闭系统并关闭电源。其中,关闭电源要求系统应支持power-off 特性。   EWX_REBOOT 关闭系统并重新启动计算机。   EWX_SHUTDOWN在安全关闭电源后关闭系统。该操作将所有的缓存刷新到磁盘并停止所有正在运行的进程。   参数dwReserved被函数所忽略,可以是任意值。   例如,要强制注销,可以通过如下语句实现:   ExitWindowsEx(EWX_FORCE, 0);   再如,要重新启动计算机,可以通过如下语句实现:   ExitWindowsEx(EWX_REBOOT, 0);   需要提醒大家注意的是,在很多情况下,只有参数EWX_SHUTDOWN能够成功关闭计算机电源。 
      

  3.   

    shutdown -s
    xp的,其他的不知道
      

  4.   

    再试试这两
    Rundll32.exe Shell32.dll,SHExitWindowsEx 1
    rundll32.exe user.exe, exitwindows
      

  5.   

    正如:hellolongbin(一个人[年长资深少男]) 所写,在winnt/2k/xp下要提升权限才能调用ExitWindowsEx
      

  6.   

    Rundll32.exe Shell32.dll,SHExitWindowsEx 1
    rundll32.exe user.exe, exitwindows
    没有用过,等下下班的时候试下