发布一个使计算机睡觉的模块:modLetPcDormancy
来源:互联网 发布:新网域名不加www 编辑:程序博客网 时间:2024/04/26 09:05
以前写过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 = &H8
Private Type LUID
LowPart As Long
HighPart As Long
End Type
Private Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End Type
Private Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
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 Declare Function SetSystemPowerState Lib "kernel32" (ByVal fSuspend As Long, ByVal fForce As Long) As Long
Public 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
- #3 构建发布一个模块
- python模块的发布
- 一个C#睡觉前的夜晚 (转载)
- 睡觉前欣赏一下select函数的一个小程序
- 2014-9-10中午睡觉的一个梦
- 吃饭~睡觉~编代码~~~做一个快乐的程序猿~~~
- python day05 编写一个给定多项式的简易计算机 re模块及正则匹配应用
- 发布你的Python模块
- 睡觉的窍决
- 有关睡觉的学问
- 简单的心愿,睡觉
- Programmer的睡觉
- 有关睡觉的学问
- 睡觉的诀窍
- 睡觉的诀窍
- 睡觉的诀窍
- 睡觉前的总结
- 感冒了
- 用indent格式化C程序
- 接口存储过程
- 3年读完大学课程并考上北大光华金融系 真实之强
- 新域名 @live.com 和 @windowslive.com 即将上线 (from cnbeta)
- 发布一个使计算机睡觉的模块:modLetPcDormancy
- asp.net学习笔记
- C++ Primer 中文版(第4版) 不完全勘误表
- 做自己的系统分析师
- Microsoft Specific
- 我谈电信设计院
- 下拉菜单被表单挡住的几种解决方法
- FLASH VS AJAX
- UML利器--Rational Rose Enterprise Edition 2003 安装破解步骤