说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

:为什么用exitwindowsex()不能关掉电源,而是提示“现在可以安全关机啦”后才能手动关机

编辑:说三道四文库 发布时间:2017-01-24 01:19
HTML文档下载 WORD文档下载 PDF文档下载
不会吧,我用的时候怎么没问题?ExitWindowsEx(EWX_SHUTDOWN,0)?这个函数没错的。
TO:xinfang

会不会是你的机器本身不支持“关闭电源”?
是ATX吗?
是不是电源管理设置有问题
在windows开始菜单里选“关机”,如果显示出来的是“现在可以安全关机”,那程序当然
也无能为力。
机器太老啦,呵呵
应该是机子的问题!
机器问题吧。
用汇编关闭
to ,所有人
在菜单中选择关机都能正常的关机
不的啦我机器没有问题,是atx的,装的是win2000中文版的
不过我是用vb写的,但是vb栏中没人解决,只有过来问啦
多谢,多谢
在2000中要想用ExitWindowsEx()关机的话有些麻烦。给你一个例子程序,或许有帮助




'''
'''与Windows NT关机相关的API函数和类型
'''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long



'The LookupPrivilegeValue function retrieves the locally unique
'identifier (LUID) used on a specified system to locally represent
'the specified privilege name.
Private Declare Function LookupPrivilegeValue Lib "advapi32" _
   Alias "LookupPrivilegeValueA" _
   (ByVal lpSystemName As String, _
    ByVal lpName As String, _
    lpLuid As LUID) As Long

'Get the operating system version
Public Declare Function GetVersion Lib "kernel32" () As Long

'The GetCurrentProcess function returns a pseudohandle for the
'current process.
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

'The AdjustTokenPrivileges function enables or disables privileges
'in the specified access token. Enabling or disabling privileges
'in an access token requires TOKEN_ADJUST_PRIVILEGES access.
Private Declare Function AdjustTokenPrivileges Lib "advapi32" _
         (ByVal TokenHandle As Long, _
          ByVal DisableAllPrivileges As Long, _
          NewState As TOKEN_PRIVILEGES, _
          ByVal BufferLength As Long, _
          PreviousState As TOKEN_PRIVILEGES, _
          ReturnLength As Long) As Long
'The OpenProcessToken function opens the access token associated with
'a process.
Private Declare Function OpenProcessToken Lib "advapi32" _
   (ByVal ProcessHandle As Long, _
    ByVal DesiredAccess As Long, _
    TokenHandle As Long) As Long
    
Public Declare Function GetLastError Lib "kernel32" () As Long
Public Declare Sub SetLastError Lib "kernel32" (ByVal dwErrCode As Long)
    

Private Type LUID
    UsedPart As Long
    IgnoredForNowHigh32BitPart As Long
End Type

Private Type LUID_AND_ATTRIBUTES
    TheLuid As LUID
    Attributes As Long
End Type

Private Type TOKEN_PRIVILEGES
   PrivilegeCount As Long
   TheLuid As LUID
   Attributes As Long
End Type

Public Const EWX_SHUTDOWN = 1 '关机常数

'''
'''调整进程的权限
'''
Public Sub AdjustToken()

      '********************************************************************
      '* This procedure sets the proper privileges to allow a log off or a
      '* shut down to occur under Windows NT.
      '********************************************************************

         Const TOKEN_ADJUST_PRIVILEGES = &H20
         Const TOKEN_QUERY = &H8
         Const SE_PRIVILEGE_ENABLED = &H2

         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

         'Set the error code of the last thread to zero using the
         'SetLast Error function. Do this so that the GetLastError
         'function does not return a value other than zero for no
         'apparent reason.
         SetLastError 0

         'Use the GetCurrentProcess function to set the hdlProcessHandle
         'variable.
         hdlProcessHandle = GetCurrentProcess()

         If GetLastError <> 0 Then
            MsgBox "GetCurrentProcess error==" & GetLastError
         End If

         OpenProcessToken hdlProcessHandle, _
            (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), hdlTokenHandle

         If GetLastError <> 0 Then
            MsgBox "OpenProcessToken error==" & GetLastError
         End If

         'Get the LUID for shutdown privilege
         LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid

         If GetLastError <> 0 Then
            MsgBox "LookupPrivilegeValue error==" & GetLastError
         End If

         tkp.PrivilegeCount = 1    ' One privilege to set
         tkp.TheLuid = tmpLuid
         tkp.Attributes = SE_PRIVILEGE_ENABLED

         'Enable the shutdown privilege in the access token of this process
         AdjustTokenPrivileges hdlTokenHandle, _
                               False, _
                               tkp, _
                               Len(tkpNewButIgnored), _
                               tkpNewButIgnored, _
                               lBufferNeeded

         If GetLastError <> 0 Then
            MsgBox "AdjustTokenPrivileges error==" & GetLastError
         End If
End Sub


有了以上的声明后,在你调用ExitWindowsEx()时,首先判断一下操作系统的版本,如果是
NT,则先调用AdjustToken(),然后再调用ExitWindowsEx(),方可成功。
不是这样的,关闭Windows2000是可以的,但是之后还要手动关闭电源,我也碰到过这样的问题,不知道怎么解决?
to:turbo(我是菜鸟我要分) 
打开win2000的高级电源管理支持
只要通過菜單能關閉電源的,則硬件緷對沒問題。
在win98下應可以直接用ExitWindows()關機。
但在win2000下需先取得關機的權限才可以,具体你可以查msdn中關于ExitWindows()的說明(要是2000版的才可以)。要用到的函數大概有OpenProcessToken(),LookupPrivilegeValue(),AdjustTokenPrivileges()這些。

我有用vc實現的完整程序,你要的話我可以給你。
好呀,管他vc,vb,我通吃嘿嘿。。
忘了emial darkleopard0@163.com,嘿嘿。。不好意思
看看是否CMOS设置和Windows电源管理设置对不对
http://www.csdn.net/expert/topic/215/215099.shtm
查看你的主板是否支持自动关机和CMOS的设置。
如果主板不支持自动关机就只能手动了。
可能是主板\电源的问题,以前的老电源不能支持自动关机
你的参数用错了
注意,你大概用的是EWX_SHUTDOWN,这个参数的意思是
Shuts down the system to a point at which it is safe to turn off the power. 
就是让你手动poweroff
建议你试试EWX_POWEROFF
可直接关机,msdn上是这样说的:
Shuts down the system and turns off the power. The system must support the power-off feature. 
做成一个时间限制的测试版 -VB资料 PHP中利用jQuery实现SWF图像上传和裁剪 VB.NET或C#将DataSet快速导出到Excel中 HashSet的equals和hashCode重写问题 PendingIntent实现原理和代码 IntentService实现原理及内部代码 AsyncTask实现原理和内部代码 Neither user nor current process错误 ListView的右边滚动滑块启用方法 Live Wallpaper动态壁纸开发 控制软键盘显示和隐藏 设置Activity大小不再全屏原理 Android面试题,看看你基础如何? Android Canvas绘图抗锯齿解决方法 Android xliff和字符串资源 android.hardware.USB类介绍 Android开发经验谈之应用间数据共享 android_asset这个URL详细使用方法 Android 2.3系统自带高清UI图标下载 设置ScrollView滚动条的颜色 WakeLock使用方法示例代码 Concurrent并发库常见问题总结 Android数据库SQLite性能优化技巧 Android开发之Java设计模式基础篇 Android开发之Java设计模式入门篇 Android开发之Java设计模式 Android开发之Java并发包集合类性能分析 Android开发之Java集合类性能分析 Android开发之Java虚拟机原理和内存分配 Android开发之Java基础系列教程目录 Android Theme主题样式开发注意点 各位平时用 VC 作东西,都用那些辅助工具?  高分争解 【 http://www.esoftware.com.cn/search.php?condition=%BA%AB%C1%F7%C0%B4%CF%AE&page=1&mode=3 】 JBuilder的使用问题 在VFP中,编程执行SQL语句时,怎样使系统的查询结果不出现? 一个程序流程的问题 为什么当我的SpeedButton的enabled为false时,上面的图标就没有了? 囡囡(baicolt)请进,问你一点事情 简单问题,请赐教 高分相赠!!!:操作系统和SQL SEVER2000都是英文版,用VB连接如何可以正确的输入和显示中文? 则么在程序中得到sql的存储过程的返回值? 请问 VB 6.0 有没有最新的升级文件之类的东西?高分争解 谢谢 谁有用java做的复杂一点的图行界面的例子 网管来看看,为什么不能给分了!右边的文本框又不见了! 各位用 VB 编程都用那些辅助工具? 高分争解 关于ShellExecute 装了redhat7,在/etc里没有inetd.conf文件,谁见过这咋整 菜鸟请教大侠!很急!谢谢!!只有10分对不起! 请问一个关于CLASSWIZARD 的问题 这里有PB反编译程序,你信吗? 怎样解 关于大数据量的问题,经验丰富者里面谈! 我想在程序里控制程序外的浏览器窗口资源管理器窗口,怎么做呢?急呀!!!!!! 请问:我用JavaMail收下的邮件主题,发信人姓名不能正常显示。。。。。 认识我的人都进来跟我聊聊吧,我最近新换了工作,还没有适应,你们各位是怎么换工作? 请问如何在Delphi中表示二进制,或者十六进制数呢? 各位35以后干什么?我们能干什么? ????? 如何将eltree中的数据和某数据表关联 有没有比RECORDCOUNT快的方法实现同样的功能? 鉴于目前有些东西说话不知轻重,把这个旧闻再贴一遍,不要以为真的在网上 “没人知道你是一只狗” Java 工具 怎样解决vb中编译成exe文件中出现的问题? 你别说国企,只要是沾的国企的气味就他妈的黑! api函数我不懂。 我要开发一个网络监听的程序,捕获所有以太网中所有的帧,象NT和Win2000中的网络监视器一样 找了半天,看不到一个熟人,认识的过来报到 请问哪里有下载jdk啊? 问题征集算法 偶烦!偶郁闷!咿呀~~~~~~~~老哥进来安慰偶。。。。快!快!快!!! 在ListView中,如何象Windows资源管理器那样将剪贴了的文件图标变虚? 清华大学的学生素质真差 打开数据库为什么出错? WinCE的串口通讯读和写之间有相互制约的问题吗? 强烈抗议IBM蓝色“快”车服务的速度和质量!!各位同志请帮我广帖出去! outlook 求助 jsp的小问题 关于cjlib中显示中文的问题 山东快书 《武松上网》 送给大家一张图片,开开心心灌水,快快乐乐上班 各位高手,老题新问 请教Win2000下SetWindowsHookE的问题 odbc和ado是一回事吗? 氢化钙 钙鉴别能用与水反应生成的氢气的量吗物质的量相同 只用一种试剂一次性就能验证锌、铜、银三种金属活动性强弱,该试剂为( )A 硫酸铜溶液 B 硫酸锌溶液 C 硝酸银溶液 D 稀盐酸 铜和硝酸汞反应的方程式 为什么登山制取氢气用氢化钙而不电解水?制取同等质量的氢气需要的水的质量要比氢化钙要少,负担更少,而且电解水还能产生氧气,为社么登山制取氢气用氧化钙而不电解水? 要验证锌、铁、铜三种金属的活动顺序,可选用(?),为什么?A.Cu.FeCl2.Zncl2B.Fe.CuSO4.ZnCl2C.Zn.CuO.FeSO4D.Fe.Cu.ZnCl2那如果是:A.Fe、Cu、Zn(NO3)2溶液。B.Cu、FeCl2溶液、ZnCl2溶液C.Zn、CuSO4溶液、FeSO4溶液 铜与硝酸汞溶液能不能发生反应,若是能写出化学方程式,若是不能 化学题设计个过氧化钠的小实验过氧化钠保存不当容易变质1,某过氧化钠样品已经部分变质,请设计实验,限用一种溶液,证明过氧化钠已经变质2,检验样品中还有过氧化钠的方法是都回答得很好 1 能用于证明锌 铜 银的金属活动性顺序的一组试剂是()A 铜 银 硝酸锌溶液 B 锌 银 硝酸铜溶液 稀硫酸 C 锌 铜 稀硫酸 硝酸银溶液 D 锌 铜 银 稀硫酸 我认为b c都行,1 能用于证明锌 铜 银的金属 铜和硝酸汞溶液反应的方程式还有三氧化硫和水反应,氧化钙和水反应,氧化钠和水反应,碳酸银和稀硝酸反应的方程式 设计试验(化学)现在就要!1.设计试验证明二氧化碳具有下述性质:(1)二氧化碳的密度比空气的大;(2)二氧化碳能溶与水.2.设计实验证明汽水中含有二氧化碳.(别太复杂) 甲同学为探究铝、铁和铜三种金属的活动性、甲同学为了探究铝、铁和铜三种金属的活动性,他用铜丝、铁丝、铝丝和稀盐酸四种试剂,设计了以下只用一支试管,取一次盐酸的探究方案.⑴请你 铜与硝酸汞溶液反应是的主要现象 化学设计实验现有一白色粉末是由氯化钠、硫酸钠中的一种或两种共同组成.给你四种溶液:硝酸银溶液、氢氧化钠溶液、碳酸钠溶液、硝酸钡溶液,要你证明此粉末只由硫酸钠组成(两步). 为测定铁.铜和银的金属活动性顺序,下列不能达到目的的是:A Ag、Fe、CuSO4溶液B Ag、FeSO4、CuSO4溶液C Fe、Cu、AgNO3溶液D Cu、FeSO4、AgNO3溶液原因 正确答案我知道 是 B、C 铜和硝酸汞溶液发生反应的问题.铜和硝酸汞溶液反应后生成硝酸铜溶液和汞,但问题是这个置换出来的汞会粘在铜片上,并且拿纸都擦不掉!常温下汞不是液态吗?并且把铜片拿出后过了一段时 求5篇化学家庭实验 实验报告拜托各位高手帮我找5篇家庭小实验的实验报告包括目的.步骤.现象.结论注意:要是家里能做的实验.最好是收集沼气,、葱汁写密信、收集沼气.要5篇啊,谢谢如果 下列各组物质能证明铁 银 铜的金属活动性强弱的是A 铁 硫酸铜溶液 硝酸银溶液 B 铁 铜 硝酸银溶液C 银 铜 氯化亚铁溶液 D 铁 银 硫酸铜溶液不然我还是不会做 铜与硝酸汞反应,生成的汞是固体吗,为什么 利用下列各组反应,能够验证铁、铜、银三种金属活动性顺序的是利用下列各组物质之间的反应,能够验证铁、铜、银三种金属活动性顺序的是( ) A、氯化亚铁溶液、铜、银 B、氯化亚铁溶液、 小刚设计实验探究铁、铜、银三种金属的活动性顺产并分析相关问题.请填空: ⑴他设计的四种实验方案 什么金属既能与稀硫酸反应生成氢气,又能与硝酸汞反应生成汞 A.银 B.钠 C.镁 D.铜 利用下列各组物质之间的反应,能够验证铁、铜、银三种金属活动性顺序的是(  )A、氯化亚铁溶液、铜、银B、氯化亚铁溶液、氯化铜溶液、银 C、铁、氯化铜溶液、银 D、氯化铁溶液、铜 验证铜 镁 铁 金属活动性的实验? 铜和硝酸汞能反应吗 利用下面各组物质之间的反应,能够验证铁,铜,银三种金属活动性顺序的是( )A.氯化亚铁溶液,铜,银B.氯化亚铁溶液,氯化铜溶液,银C.铁,氯化铜溶液,银D.氯化铁溶液,铜,硝酸银溶液我觉得应 证明镁,锌,铁,铜,银的活动性顺序实验设计这个实验的过程,与结论 硝酸银化学式 设计实验关于判断铝铁铜的金属活泼性强弱顺序4种方案 用实验证明锌和铜两种金属的活动性顺序时,可选用的试剂是用稀硫酸好还是用氯化锌好 氯化锰加硝酸银化学式!求氯化锰加硝酸银的化学式我的意思是氯化锰和硝酸银的反应化学式 什么试剂能直接验证铝 铁 铜的活动性顺序 辨别金属活动性的实验:铁铜锌 铜和硝酸银化学式?999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 证明铁、铝、铜三种金属的活动性顺序,选用哪些试剂?A 盐酸、硝酸银溶液B 盐酸、氯化亚铁溶液C 硝酸、硝酸铜溶液D 氯化镁溶液、硫酸铜溶液为什么? 无机化学题 解释 分别在 硝酸汞溶液和硝酸亚汞溶液中 逐滴滴加钾碘化钾,(1)分别有什么现象(2)当碘化钾 过量时,有分别有什么现象. 自来水加硝酸银的化学式是什么? 铝、铁、铜是人类广泛使用的三种金属,与我们生活息息相关.3)用下列试剂验证这三种金属的活动性顺序,能达到目的是 (填序号). A.硫酸铝溶液 B.硫酸亚铁溶液 C.硫酸铜溶液 选什 硝酸汞中汞的化合价是多少? 硝酸银的化学式是什么? 为验证铁、铜、铝三种金属的活动性顺序,可选用的一组物质是(  )A.FeSO4溶液、Cu、AlCl3溶液B.CuSO4溶液、Fe、AlC13溶液C.CuSO4溶液、Fe、AlD.AlCl3溶液、Fe、Cu我知道答案是B,我想知道C为 下列各金属分别投入硝酸汞溶液中,不能置换出汞的是()下列各金属分别投入硝酸汞{Hg(NO3)2}溶液中,不能置换出汞的是( )A.Zn锌B.Fe铁C.Ag银D.Cu铜另外原因是什么?它们的活动性由强到弱怎样 硝酸银的化学式 怎样证明铝、铁、铜三种金属的化学活泼性大小,解释为什么这三种金属只有铁最容易生锈. 在硝酸汞中汞显几价,关于这个化合价的取值有什么特殊规律吗?还有我是在写化学式的过程中出现的问题不能按化学式为零的方法算啊,我是说,在写化学方程式的过程中如何判断有多价的 铁跟硝酸银反应化学式 设计实验探究铝和铜的金属活动性大小顺序要实验的具体步骤材料:硫酸铜,铝片,试管……(是先放硫酸铜进试管还是先放铝片?) 铜与硝酸汞反应的现象 铝与硝酸银溶液发生反应的化学式 如何区分化学中物质的性质与变化举出具体事例说明 用Fe,ZnSO4溶液,CuSO4溶液,验证锌、铁、铜三种金属活动性顺序,可不可以? 加热铜丝的现象 现象和变化的区别 铜是金属活动性弱的金属,那么怎么配置硫酸铜溶液 铜丝加热后的现象请问铜丝加热后会有什么现象? 登上运动员用氢化钙CaH2固体提供能源有什么优点 验证铝和银的金属活动性顺序用稀盐酸还是硫酸铜?这俩不都行吗? 铜丝在空气中燃烧现象 能否用燃烧现象鉴别氢化钙和钙? 铝和硫酸铜溶液反应Al+CuSO4+H2O=?不是置换反应,是生成沉淀的那种 氯气与铜丝反应现象
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn