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

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

编辑:说三道四文库 发布时间:2017-05-30 05:31
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. 
不断缩水后的微博上市首日大涨19% 曾一度涨超40% Snapdragon LLVM编译器全新升级 支持骁龙64位处理器 EDP:基于Node.JS与NPM的企业级开发平台 想改变世界,先改变自己——知名Hacker、发明家Mitch Altman专访 《近匠》iHealth,健康大数据助力硬件“破壳” 一周消息树:如何做到每天写代码? 一周热点:微软SQL Server 2014三大新特性 《Make》创始人Dale Dougherty:全民创客 DevOps正在扼杀程序员? OpenStack新版本:新增近350个功能,修复Bug超2900个 【走近讲师】易欢欢:数据对接和后台是互联网金融的技术最难点 最火HTML5 JavaScript游戏引擎:国外篇(二) 挑战最强大脑——来自全球的14个编码社区 摩尔定律让位于贝索斯定律 InPaaS:新一代云计算应用平台 【技术博客推荐】樊哲谈机器学习算法与Mahout Scala 2.11.0发布 仅支持Java 8部分功能 诺基亚彻底“卖身” 变“微软移动” 10款高效简化移动开发过程的工具 《近匠》AppCan:打造成云生态的移动PaaS平台 WhatsApp壮举:活跃用户超五亿、日7亿幅照片和1亿个视频 如期而至,GCC 4.9.0正式版发布! 【走近讲师】孙昌勋:容联云通讯构筑通讯能力云平台生态圈 最新版本的Hive 0.13发布,增加ACID特性 开发中的“软”与“硬”:高画质移动游戏开发之道 从国际编码竞赛来看编程语言受众度 AMD迎接变革:加速OpenCL的未来 角逐Hadoop市场,Cloudera与Hortonworks竞争白热化 OpenStack将提供对Docker的支持 Facebook Q1财报:营收25.02亿美元、59%来自于移动 黑客们盯上了卫星,IOActive的惊人发现 请问打印的问题??? 7.3下如何安装ftp服务? 向高手求救,有关java中文的问题!!! 如何在TextArea中用自身手段强制换行? 关于Datalist的弱弱问题:怎样显示全部数据? 深圳哪儿有分期付款的笔记本卖啊,知道的进来,散分 抢在编译器之前!!!! EventArgs e做何解? 如何读取Excel表中的数据 知道一个文件名d:/1.bmp,想复制另一文件d:/2.bmp,怎么写?在线等候 GIF动画图片 我的一个dbgrid的连到一个datasource名是dtds,然后dtds的dataset是一个adoquery,现在当我在dbgrid上选择了几个记录后,如何把所有被选择 如何在Delphi6 程序中,把数据库(BDE)连接的用户名、密码写进程序中? 汉字组成的字符串转成char[]数组,再组合起来就出现乱码 WEB控件 textbox控件的问题,我从来没有遇到过,真奇怪? 求救!在线等 向高手求救,有关java中文的问题!!! 怎样在数据库中查出本周的记录。是ACCESS数据库。为什么高手都不进来。是问题太难吗 如何将任务栏的图标隐藏? 怎么google上不去了? SQL简单问题 关于html中进行文本编辑中操作图片的问题?请各位大虾来看看结贴一定给分 哪儿有H.323的资料呀? 我是菜鸟: ReportBuilder 中明细记录的序号怎么加? 屏蔽输入的字符 求解分数排名的权数确定 如何实现海量数据数据库的快速查询?? 有谁知道TreeView的AutoSelect属性是干嘛用的?? vc60编译出错问题? 请问编写调试JavaScript用什么软件比较好? 救命啊!!!!! 和父母一直搞的不好,怎么办? 客户端连接问题 求救 VFP:event.prg不存在? 宏和内联函数有什么具体的区别 请问如何将HTML页面直接插入TWebBrowser而不通过文件存取?谢谢! 如何将任务栏的图标隐藏? SQL Server7.0我的一个表才5万条数据,用这样的SQL Select * from Diner 语句查询要几十秒钟?太慢了。 请高手指点迷津!!! 2035年9月7日新华社报道 我的IE菜单怎么变成英文的了? GetFileVersionInfoSize,GetFileVersionInfo, VerQueryValue通过他们...... 谁知道文件上传组件:w3upload ,哪里有下载? 向高手求救,有关java中文的问题!!! 请教关于信息分析的好的软件有哪些?(100分) 急!如何使JTable中的某一列中的所有单元格只能输入数字?(急需源代码!)感谢! 怎样判断数据连接? 你是一个真正的程序员吗? 串口接收二进制数据一问,高分相送 关于关机的问题 Linux gcc 一弱弱问题 磁性材料有哪些? 将一块氯化钠晶体投入它的饱和溶液中 它的形状会变成什么样 我们老师说不是立方体 要具体形状的哦亲~ 请问风力发电用什么发电机? 磁性材料是怎样运行分类的 chip(薯条)可不可数? 风力发电用哪种发电机 bright用英语怎么读准确点,最好用汉语或音标! lim(x→-∞)[(√(x+2)(x+5))+x]=__..根号下是(x+2)乘于(x+5) 后面加的x不在根号下 中国古代农业发展史的革命.农业是我国两千多年封建社会的立国之本,农业生产技术的革新历来受到重视,下列哪一项是我国农业发展史上的一次革命( A.筒车.B.铁农具.C.都江堰水利工程.D.牛 英语bright的意思是什么?是句子里的中文. 有一道关于极限的简单题目已知xn=(-1)n次方/(n+1)2次方,证明数列{xn}的极限是0证明如下|xn-a|=|(-1)n次方/(n+1)2次方-0|=1/(n+1)2次方0(设ε 我国古代农业发展史! lim 2^n *sin(x/2^n)n→∞求极限 简述近代中国社会中出现的新观念,你怎样看待这一现象 比较珠江三角洲地区和辽中南地区工业发展的不同特点,从地理条件,原料等方面分析其原因 die的过去分词、名词形式 依据材料一指出明清时期出现的新的经济现象是什么 中国古代语言发展史先秦两汉语言为文言文,后代亦有古文家模仿文言文,那么,两汉后通用语言是什么?除文言文外古代还有什么语言吗? PH从0到10胃蛋白酶活性如何变化 中日甲午战争与~辛丑条约 给中国带来了什么 汽车本身装有防紫外线玻隔热玻璃还用贴膜吗? 请问 胃蛋白酶在PH值为11时活性是否已被破坏? 泰山石隔剪是什么意思 地震之前有那些预兆? 月亮和太阳什么关系 甲午战争给中国带来了什么?甲午战争除了给中国带来了灾难外,还带来了觉醒,让封关闭守的中国知道自己不如别人了.我想知道多一些关于中国为什么在甲午战争中醒来的条件、原因,或别的 中国古代的钱币a.中国在秦朝之前的钱币是多种多样的,有哪些形状呢?请写下表:b.有些古代钱币上还刻有文字,它们代表了什么呢?照样子描下来.c.有些同学们在花鸟市场发现,一些古代的同伴 关于月亮和太阳弱弱的问一下,那位科学家可以帮助我回答一个问题,为什么月亮在白天看到的是白色的,晚上看到的是黄色.为什么太阳白天看到的是白色的,傍晚看到的是红色.我要科学家回答, 谁知道泰山石敢挡是什么意思啊? 中国古代钱币的问题1·比如哪个朝代的钱币相当于现在的多少元2·不限朝代,越多越好 月球和太阳的有关问题1.月球绕着地球转,有没有轨道?2.在出现日全食时,月球是不是比平时离地球要近一点?3.出现日偏食时,月球是不是比平时离地球要远一点? 院里放泰山石是什么意思 现金最贵的中国古代钱币是什么? 天然高分子化合物举3例! 什么是半导体封装测试 铜与硫酸银溶液的反映现象,及其讲解 R=电阻率×L/S 的微观解释是怎样的? 半导体封装测试品是什么意思? 泰山石什么作用?摆放时注意什么? 求聚合物改性方面好点的参考用书 最好能够注明下出版社和作者谢谢啦 染色体免疫共沉淀(CHIP)的实验步骤最好详细点,答得好有追加分 中国古代桥梁知识 魔神英文`希腊文分别是什么要每个的简单说明 速度 chip实验步骤请问加了proteinA/G把复合物沉降下来之后,是否可以离心去掉上清,直接进行逆交联 ,难道proteinA/G真的能把复合物都沉降下来吗?离心去上清后那就只有沉淀了,直接把沉淀来逆交联 中国古代桥梁之最(举3中以上) 第13题的英文是神魔 请问一下四氨合铜离子和硫酸铜可以反应吗?如果可以反应,请问一下反应的的现象. 我国有那些古代名桥? 稀有气体属于非金属元素么? 带点的单独解释 高铁酸钠、明矾、氯气、次氯酸盐哪种的净水效果最好?如题 常用磁性材料的主要种类与有关技术指标是什么? 向硫酸四氨合铜溶液中加入乙醇会有什么现象?会出现沉淀吗? 硫酸四氨合铜和硫酸反应的产物是什么? 软磁材料与硬磁性材料是怎样划分的?他们的区别是什么? 纯组分烃是什么意思 硫酸四氨合铜与氢氧根方程式 磁性材料种类特点 结合所学知识分析材料一中的“漫画反应了哪种趋势” 发电机叶片直径大概要多大风力发电机的叶片 直流发电机 最终用途是给手机充电 但是要先给蓄电池充电 蓄电池大概12V 容量15-20AH
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘