以前写过C++的,这个是我用VB仿造的,呵呵
Option Explicit
Private Const ANYSIZE_ARRAY = 1
Private Const SE_PRIVILEGE_ENABLED = &H2
Private Const TOKEN_ADJUST_PRIVILEGES = &H20
Private Const TOKEN_QUERY = &H8Private Type LUID
LowPart As Long
HighPart As Long
End TypePrivate Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End TypePrivate Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End TypePrivate 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 Declare Function SetSystemPowerState Lib "kernel32" (ByVal fSuspend As Long, ByVal fForce As Long) As LongPublic Function LetPcDormancy() As Boolean
On Error GoTo Z
Dim hToken As Long
Dim mLUID As LUID
Dim mPriv As TOKEN_PRIVILEGES
Dim mNewPriv As TOKEN_PRIVILEGES
If OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken) = 0 Then
LetPcDormancy = False
Exit Function
End If
If LookupPrivilegeValue("", "SeShutdownPrivilege", mLUID) = 0 Then
LetPcDormancy = False
Exit Function
End If
mPriv.PrivilegeCount = 1
mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
mPriv.Privileges(0).pLuid = mLUID
AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 * mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount)
SetSystemPowerState False, True
LetPcDormancy = True
Exit Function
Z:
End Function
发布一个使计算机睡觉的模块:modLetPcDormancy
原创
©著作权归作者所有:来自51CTO博客作者唐古拉山的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【计算机网络】计算机网络的概念
【计算机网络】第一章——计算机网络体系结构详细介绍计算机网络的概念……
计算机网络 互连网 互联网 -
【计算机组成原理】详谈计算机发展历程
【计算机组成原理】第一章——计算机系统概述详细介绍计算机的发展历程……
微型计算机 个人计算机 高级语言 -
计算机科学是怎样的一个专业?
如今,计算机技术已经非常普及,熟练掌握其应用已经成为现代社会成员的基本要求。计算技
算法 人工智能 计算机科学 数据 解决方案 -
写一个简单的计算机
1.写一个简单的计算机 ...
java 数据 -
Python定义一个计算 python定义一个计算机类
1.面向对象(Object Oriented,OO)概念面向对象,是我们编程的一种思维。早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承。通过面向对象的方法,更利于用人理解的方式
Python定义一个计算 python类的定义与使用 python重写带参数的父类方法 判断类型是否继承 实例化