关闭

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

1555人阅读 评论(0) 收藏 举报

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

 

 

0
0
查看评论

您计算机上的一个策略阻止您连接到该打印机

您计算机上的一个策略阻止您连接到该打印机-解决方法 “您计算机上的一个策略阻止您连接到该打印队列,请与您的系统管理员联系” 你可以试着到域策略里找计算机配置>Windows配置>安全配置>本地策略>安全选项,把“防止用户安装打印机驱动程序”设置成“未配置” 其他应该不需...
  • quanhongliang9
  • quanhongliang9
  • 2015-05-13 14:24
  • 6760

如何创建和发布Python模块

Windows下如何构建和发布Python模块 已有 7514 次阅读 2013-1-3 22:22 |个人分类:学习生活|系统分类:科研笔记|关键词:Python 发布 模块 Windows 1. 首先将你要发布的模块(函数)写在一个Python文件里,即以...
  • qq_34344061
  • qq_34344061
  • 2016-12-06 11:16
  • 2070

读过《坏孩子的故事》后 

读过《坏孩子的故事》后   我爸爸所在的单位发了一张80元的购书卡,开始我兴奋极了点,而等到了那书店,才明白那书卡基本上没什么价值,因为这里没有什么值得花时间去读的书,到处都是一些无聊至极的粉色小说,在我看来那些书刊的档次比黄色书刊都低,黄色书刊还贴近生活一些,讲的都是大家都早晚要面对的问题,而那些...
  • treachery
  • treachery
  • 2006-06-18 02:45
  • 1728

python3 模块构建与发布

Based on Ubuntu:准备发布自己的模块自己的模块内容root@ubuntu:~/python/nester# cat nester.py def print_lol(the_list): #This is the example from the book for var in...
  • mygodhome
  • mygodhome
  • 2016-11-23 12:56
  • 833

初学Python之发布自己的模块

初学Python之发布自己的模块 Python是一种开源的工具,因此我们可以将自己写好的针对某个问题的模块发布到pyPI上去,以供给大家下载和使用。本文章就是介绍如何在pyPI上发布自己的模块。 Step 1: 首先为你要发布的模块创建一个文件夹 将你要进行发布的模块文件拷进你新建的文件夹中。比...
  • yiyehuajia1993
  • yiyehuajia1993
  • 2015-02-03 01:05
  • 697

发布python代码模块

完全参照headfirst书的步骤来实现的。系统为windows。
  • AQ_cainiao_AQ
  • AQ_cainiao_AQ
  • 2016-06-21 11:28
  • 780

发布和安装python自定义模块

这一篇说下如何发布和安装python自定义模块,版本:Python 2.7 。1.创建setup.py现在如果已经写好一个python文件,为了尽量简明,创建一个新的文件夹,把自己py文件放进去。接着在这个文件夹中创建一个名为 setup.py 的文件,用来表示模块的元数据,文件的内容类似下面这个样...
  • kikitaMoon
  • kikitaMoon
  • 2015-07-09 11:49
  • 3445

您计算机上的一个策略阻止您连接到该打印机列队。请与您的系统管理员联系

解决方法:注销后用域管理员登陆,并安装打印机,然后再注销登录域普通用户,就可以安装打印机了。 其他方法(转载)(未测试) 可以试着到域策略里找计算机配置>Windows配置>安全配置>本地策略>安全选项,把“防止用户安装打印机驱动程序”设置成“未配置”  其他...
  • kepa520
  • kepa520
  • 2015-07-26 21:28
  • 1559

windows下python模块构建发布

DEF.发布: 发布是指一个文件集合,这些文集那联合在一起允许你构建、打包和发布你的module。 一旦发布存在,就可以把模块安装到你的python本地副本上,还可以上传到PyPI与全世界分享。       流程: · 为module创建一个文件夹,将modu...
  • leen_nilia
  • leen_nilia
  • 2017-02-25 16:56
  • 348

进程(线程)间同步互斥问题(三) 熟睡的理发师问题

问题描述:熟睡的理发师问题描述的是多个进程(线程)之间的通信与同步问题: 有一个理发师的椅子,和n个顾客的椅子 如果有顾客在椅子上等,那么理发师为他剪发,否则理发师就在自己的椅子上睡觉。 如果理发师在熟睡,那么顾客会叫醒理发师,否则顾客会看有没有空椅子,有的话,他坐下等,否则,他将离开理发店。 问题...
  • qq_24451605
  • qq_24451605
  • 2015-11-05 09:50
  • 4149
    个人资料
    • 访问:2281283次
    • 积分:29249
    • 等级:
    • 排名:第210名
    • 原创:684篇
    • 转载:135篇
    • 译文:0篇
    • 评论:475条
    文章存档
    最新评论