发布一个使计算机睡觉的模块:modLetPcDormancy

原创 2006年06月14日 14:01:00

以前写过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

 

 

python day05 编写一个给定多项式的简易计算机 re模块及正则匹配应用

正则匹配去括号 简易计算器
  • ss__zz
  • ss__zz
  • 2017年08月03日 22:11
  • 148

都看一个星期struts了,做一个登录验证,睡觉

都看一个星期struts了,做一个登录验证,刚有一点点入门,挺有意思的,加油吧,同志,睡觉~~~~~~~~~ ...
  • wclxyn
  • wclxyn
  • 2012年03月20日 01:01
  • 1225

发布网站 出现 "处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误"

原因: vs2010默认的是4.0框架,4.0的框架是独立的CLR,和2.0的不同,如果想运行4.0的网站,需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0...

发布一个采用boost::asio写的异步网络通信模块

//lihaoyxj@gmail.com//lihaoyxj.cublog.cn最近要写网络通信的一个相对复杂的应用,一直希望找出一个合适的网络通信框架,最终我个人选择boost::asio来实现,主...

#3 构建发布一个模块

构建发布构建一个发布文件(Windows环境下)

发布一个文章读取模块,有前一篇和后一篇文章的功能,存储过程我直接贴上来了,大家自己改吧!

发布一个文章读取模块,有前一篇和后一篇文章的功能,存储过程我直接贴上来了,大家自己改吧!其实我主要是数据库最有意思!呵呵!我是c#2.0的,以后我会升级C#程序,现在太忙了所以没办法!我爱你们!!...

python中怎么将一个模块发布和安装

怎么制作共享模块第一步:在当前路径下建一个名叫setup.py的文件,第二步:在文件里面写一段内容from distutils.core import setup setup(name="",vers...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:发布一个使计算机睡觉的模块:modLetPcDormancy
举报原因:
原因补充:

(最多只允许输入30个字)