在VC中怎样关闭win98系统?
是不是调用一个API函数,还是怎样...

解决方案 »

  1.   

    记得我以前写过一个,只不过是用VB 写的,我也不想改为VC啦,道理一样,你慢慢看吧!
    Public Const EWX_SHUTDOWN = 1
    Public Const EWX_FORCE = 4
    Public Const EWX_POWEROFF = 8
    Public Const EWX_ForceShutDown = EWX_FORCE + EWX_SHUTDOWN//如果是在windows2000/xp/nt下面关闭系统,则需要首先提高应用程序的优先级
    Public Function AdjustTokenPrivilegesForNT()    Dim hdlProcessHandle As Long
        Dim hdlTokenHandle As Long
        Dim tmpLuid As LUID
        Dim tkp As TOKEN_PRIVILEGES
        Dim tkpNewButIgnored As TOKEN_PRIVILEGES
        Dim lBufferNeeded As Long
      
        hdlProcessHandle = GetCurrentProcess()
        OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or _
                         TOKEN_QUERY), hdlTokenHandle    LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
        tkp.PrivilegeCount = 1
        tkp.Privileges(0).pLuid = tmpLuid
        tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED    AdjustTokenPrivileges hdlTokenHandle, False, tkp, _
                              Len(tkpNewButIgnored), tkpNewButIgnored, _
                              lBufferNeeded
     End Function
      
    Public Function ShutDownWindows()
        Dim x As Long
        AdjustTokenPrivilegesForNT
        x = ExitWindowsEx(EWX_ForceShutDown, 0)
    End Function写完了,有点累!
      

  2.   

    有这么麻烦吗?
    用SHELL
    我记不太清了你搜索一下吧。
      

  3.   

    DWORD dwRet=0;
    用ExitWindowsEx(EWX_SHUTDOWN,dwRet)来关闭系统