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

请问各位大侠,如何在WIN2000下重启计算机。

编辑:说三道四文库 发布时间:2017-12-18 03:13
HTML文档下载 WORD文档下载 PDF文档下载
在WIN98的时候,只需一调用一条API:
    ExitWindowEx EWX_REBOOT OR EWX_FORCE,0
但是在WIN2000下却一点效果也没有,那么请问应该怎样做才能实在WIN2000下重启计算机呢?
'再起動
Private Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long
Private Const EWX_REBOOT As Long = 2            '(再起動)
Private Sub comExitWin(ByVal lMode As Long)

 ExitWindowsEx (lMode), &HFFFF
end sub

用以上方法吧
还不成的话要考虑权限问题,来信索取吧WANGXY_9999@YAHOO.COM.CN
这是我用过的代码

Option Explicit

Private bCanShutDown As Boolean
Private bCanReboot As Boolean

Private Type LUID
   UsedPart As Long
   IgnoredForNowHigh32BitPart As Long
End Type

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

' Beginning of Code
Private Const EWX_SHUTDOWN As Long = 1
Private Const EWX_FORCE As Long = 4
Private Const EWX_REBOOT = 2

Private Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
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

Private Sub AdjustToken()

   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

   hdlProcessHandle = GetCurrentProcess()
   OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or _
      TOKEN_QUERY), hdlTokenHandle

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

   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

End Sub

'//reboot system
Public Sub ForceShutdown()
   Call AdjustToken
   Call ExitWindowsEx((EWX_SHUTDOWN Or EWX_FORCE), &HFFFF)
End Sub

'//reboot system
Public Sub ForceReboot()
   Call AdjustToken
   Call ExitWindowsEx((EWX_SHUTDOWN Or EWX_FORCE Or EWX_REBOOT), &HFFFF)
End Sub



Sub main()
'//强行关机
Call ForceShutdown
        
        '//重启动  
Call ForceReboot

'///win98 和win2k都测试通过。
            
End Sub
Private Sub AllowTokenShutdown()
    Dim hProcessHandle As Long
    Dim hTokenHandle As Long
    Dim tmpLuid As LUID
    Dim tkp As TOKEN_PRIVILEGES
    Dim tkpNewButIgnored As TOKEN_PRIVILEGES
    Dim lBuffer As Long
    
    'Get the handle to the current process
    hProcessHandle = GetCurrentProcess()
    
    'Get the process token
    OpenProcessToken hProcessHandle, _
           (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), _
           hTokenHandle
    
    'Get the LUID for shutdown privilege
    LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
    tkp.PrivilegeCount = 1
    tkp.mLuid = tmpLuid
    tkp.Attributes = SE_PRIVILEGE_ENABLED
    
    'Enable shutdown access for this token
    AdjustTokenPrivileges hTokenHandle, _
            False, _
            tkp, _
            Len(tkpNewButIgnored), _
            tkpNewButIgnored, _
            lBuffer
            
End Sub


Public Sub Reboot()
    Dim rc As Long
    
    'Give this process token access to shutdown
    AllowTokenShutdown
    
    'Call the API
    rc = MsgBox("Are you sure to reboot?", vbOKCancel + vbDefaultButton2 + vbQuestion, "Reboot?")
    If rc = vbOK Then
      rc = ExitWindowsEx(EWX_REBOOT, 0&)
   End If
End Sub

我只贴了主要部分,那些声明之类的自己搞定就行了。
2000下顺利通过
【CTO俱乐部在线教育研讨会】用互联网技术深入创新教育产品 降低门槛!Hybrid应用开发框架LigerMobile 下一代IT革命:微服务器和雾计算 使用Mongo Connector和Elasticsearch实现模糊匹配 时隔8个月,物联网联盟AllSeen如今怎样? 《近匠》简网:开发零门槛 快速建原生App MDCC免费展位申请超预期 大会内容初曝光 在服务器与交换机定制之后,谷歌着手量子计算机CPU设计 电信天翼开放平台鲍占斌:优质能力 分成比例高 艾格拉斯副总裁王晓波:手游定价如何设计 Xcode 6 Beta 7发布:语法定、内库改,Swift何时完善? 干货来袭:由22个联邦机构分享的6482个数据集 Phablet出货量今年将超移动PC,明年再超平板 如何提高Web服务端并发效率的异步编程技术? 改改改!让应用通过审核出人头地的10个方法 正益无线CEO王国春:AppCan如何获得50万开发者青睐 在收购Xtreme Labs之后,Pivotal推出PaaS移动服务 .NET开发者必备的11款免费工具 .NET开发不可错过的25款高效工具 Docker最佳实践!尽在2014 Container技术大会 pflua:用Lua编写的高性能网络包过滤工具箱 掌上明珠张磊:如何设计手游付费体系 云游科技何千军:游戏开发和后端逻辑经验 《近匠》Highway1:孵化,不只是简单的帮助 嘉宾来了 MDCC 2014首批演讲嘉宾名单公布 前雅虎CTO:Hadoop扩展过程中的7个危险信号 【云先锋】星环TDH:性能大幅领先于开源Hadoop2的技术架构赏析 一周消息树:我想创业,但不懂技术怎么办? GitHub迁移数据库,借助MySQL大行其道! 实例亲授:教你如何创建AR应用 iOS七年,苹果都为开发者准备了哪些工具? 破坏系统图标问题!!!!!! 偶想数据结构(C++描述),请大家多介绍几本! 紧急求救:两台连上交换机的电脑为何互相ping不通? 看到corejava第二卷。头大 有这么一种打印格式。。。。。。 我的c盘是系统盘,我不想别人安装东西在里面或者改动,怎么设置?? 免费空间,哈哈 Image 的地址传递问题 有什么方法能让jsp的执行中延迟一点时间。 明天又是九.一八 爱上一个银行MM,真的不知道怎么办!!!!!!!!帮帮我呀! installshield的问题? 求解一个简单问题 机器老是响个不停是怎么回事? 关于frame? 菜鸟求救!!!怎样判断输入框????? informix中的这个sql该怎么写 一个关于batchmove控件的问题? 请高手指点! 國慶節有多少人准備散分的 哪位做过java和SAP系统之间的接口? 关于文档和窗体在多进程时的传递 应用发布时失败,提示“can't drop table~~~~~~~~~” 通过电脑可以收发传真吗? 请问,如何在一个标签中加入其他的控件,并且控制标签显示的位置? 通过 2 个输入框 动态调整大小 ,但是不起作用 ?不是 后端 设置属性 会覆盖前端的吗 ? 写的第一首旧体诗,呵呵~ 学asp.net后再学asp快吗? ifaq, please come in. for you 求教问题!着急!asp.net如何连接SQLserver 十万火急:使用Directshow从摄像头读入数据,全屏播放时速度很慢 如何接受ActiveX控件的事件参数 关于MM和程序 求书 请问一个关于struts的问题,多谢了 求好书 请高手们指点一下!!!! 如何将tomcat8080端口改成8090? 急问:如何判断串口是否有设备接入? 请教:如何用win2k server和win2k pro进行局域网内的域建设 关于ltoa这个函数的一个小问题! 能将PB里数据窗口的报表以传真的方式发送出去吗?高分酬谢1 jb9里不能编辑MIDlet的代码吗? 在ASP中能够实现ASP.NET中的web.config其中的一个功能吗? 哈夫曼最优树 你能读懂吗? 关于借钱的问题,好烦恼呀,各位给点建议 求助,(datagrid+adodc) datagrid第一行第一列数据自动清除! 最近碰到一怪事~applet在某些机子上不能正常显示,help~~~~ 大家看看要编这样一个网站要多少钱? 思归大侠等高手,关于在javascript中调用并传值给服务器端方法的问题 蛊究竟是什么?存在于世界吗?苗疆真的有种叫蛊的毒物吗?传说它剧毒无比!真的无人能解吗? 这个图形是( ),它的侧面展开是( ) 数字电路适用于哪些客户? 近种篱边菊 秋来未著花的作者是谁 "近种篱边菊,秋来未著花."这首诗的作者是谁 近种篱边菊,秋来未著花,的作者诗句题目是什么? 三国演义的好段【20字】 1.下列叙述中正确的是()A.非基元反应是由若干基元反应组成的;B.凡速率方程式中各物质的浓度的指数等于方程式中其化学式前的系数时,此反应必为基元反应;C.反应级数等于反应物在反 近种篱边菊,不要全诗,要意思. 近种篱边菊,秋天未著花的解释 高中化学4.5题求解 今年年底杭州到深圳每天开行6对动车(杭州市中级法院招聘速录员属事业编制2013全国中小城市百强县市公布 义三星向中国消费者道歉 7款问题机型延俄媒议论“中国反腐经验” 称中国采取沙特再拒入“非常” 美否认与沙特关系韩要求日删除主张独岛主权视频伊朗绞不死的囚犯被免再行刑默克尔电话疑遭美安全机构窃听 致电奥奥巴马与默克尔通电话 否认情报机构窃韩国特种部队美国加州跳伞宣传独岛 (failed: 重庆银行香港上市 净failed: 楼盘动态failed: 想在哪泡温泉 看看重failed: VIP卡升级首日破百央行报告提调控新思路:保持定力精准发六学生相约出走 快餐店内呆两夜万汇中心未卖先火稀缺价值掀办卡热彩票看台贵州进足协杯决赛锁定亚冠资格人力资本高峰论坛15日举行failed: 被盗卡宴昨返还失主末世之灯焚造吉重生之绝色军娘清宫熹妃传欲与天比高诛尘皇后不受宠女二号逆袭记末日乐园掠食法则一念成尊,痴傻娘亲不要怕龙神至尊徽商大宅院旅游胜利公园旅游中华全国总工会旧址旅游团一大广场旅游接官亭旅游药洲遗址旅游广州公社旧址旅游广州原点旅游仙螺岛游乐中心旅游梅溪湖公园旅游黄兴墓旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘