这个嘛,我的方法比较傻,你可以调用shell命令,然后利用rundll32,
具体怎么写的我忘了,好象是 rundll32.exe Exitwindows,.....

解决方案 »

  1.   

    强行关机并从新启动系统
     rundll32.exe user.exe,restartwindows
    等待其他应用中之后在关机
     rundll32.exe user.exe,exitwindows
     
      

  2.   

    不算太难,用这个
    shell(C:\WINDOWS\RUNDLL.EXE user.exe,exitWindows)
      

  3.   

    winapi :exitwindowsex flags,0exitwindowsex ewx_poweroff|EWX_FORCE ,0  强行关机
    flags:
    EWX_LOGOFF Shuts down all processes running in the security context of the process that called the ExitWindowsEx function. Then it logs the user off. EWX_POWEROFF Shuts down the system and turns off the power. The system must support the power-off feature. 
    Windows NT/2000: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Res section. 
     
    EWX_REBOOT Shuts down the system and then restarts the system. 
    Windows NT/2000: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Res section. 
     
    EWX_SHUTDOWN Shuts down the system to a point at which it is safe to turn off the power. All file buffers have been flushed to disk, and all running processes have stopped. 
    Windows NT/2000: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Res section. 
     
    This parameter can optionally include the following values. Value Meaning EWX_FORCE Forces processes to terminate. When this flag is set, the system does not send the WM_QUERYENDSESSION and WM_ENDSESSION messages. This can cause the applications to lose data. Therefore, you should only use this flag in an emergency. 
    EWX_FORCEIFHUNG Windows 2000: Forces processes to terminate if they do not respond to the WM_QUERYENDSESSION or WM_ENDSESSION message. This flag is ignored if EWX_FORCE is used