【问题标题】:How to disable screensaver, sleep, lock, hibernate on windows 7 or using vb.net 2010如何在 Windows 7 或使用 vb.net 2010 上禁用屏幕保护程序、睡眠、锁定、休眠
【发布时间】:2012-06-08 07:18:07
【问题描述】:

我不知道它是否可能以及如何编码。

我创建了一个需要在 Windows 7 上以非管理员帐户运行的应用程序。如果 PC 进入睡眠/锁定/休眠/屏幕保护程序,它将无法运行。所以,我想使用 vb.net 2010 以编程方式禁用它们。有人可以帮助我吗?

顺便说一句,我已经尝试编辑 PC 的电源设置,使其永远不会休眠/休眠等。但不幸的是,它在几个小时后继续休眠。有什么想法吗?

【问题讨论】:

    标签: vb.net windows-7 power-management screensaver


    【解决方案1】:

    SetThreadExecutionState (VB) 可用于通知系统它正在使用中。对于 CD 刻录机和类似的东西,您可能需要使用 ShutdownBlockReasonCreate

    【讨论】:

    • 对了,我需要把代码放在定时器子里面吗?还是只调用一次?
    • 如果你使用 ES_CONTINUOUS 则不会
    【解决方案2】:

    试试这个:

    Private Const SPI_SETSCREENSAVERACTIVE As Integer = 17
    
    Private Declare Function SystemParametersInfo Lib "user32" _
        Alias "SystemParametersInfoA" (ByVal uAction As Integer, _
        ByVal uParam As Integer, ByRef lpvParam As Integer, _
        ByVal uWinIni As Integer) As Integer
    
    Public Function SetScreenSaverActive(ByVal Active As Boolean) As Boolean
    
        Dim Result As Integer = SystemParametersInfo(SPI_SETSCREENSAVERACTIVE, CInt(Active), 0, 0)
        Return (Result > 0)
    
    End Function
    

    【讨论】:

    • 很遗憾,由于我使用的帐户是非管理员帐户,因此我无法访问 regedit。有什么想法吗?
    • @KrisEdison 编辑了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2011-11-22
    相关资源
    最近更新 更多