【问题标题】:Keep Windows awake when a WPF application is running在 WPF 应用程序运行时保持 Windows 唤醒
【发布时间】:2017-02-23 07:07:05
【问题描述】:

有什么方法(每次运行时都在 Windows 设置中手动执行此操作)来使正在运行的WPF 应用程序阻止 Windows 进入睡眠/休眠/等。该应用程序只是在BackgroundWorker 中每 10 秒运行一次连续循环。我注意到当我的机器自动休眠时,它停止了我的BackgroundWorker,我想让它无限期地运行。

如果纯粹在WPF中不可能,还有其他方法吗?

【问题讨论】:

    标签: c# wpf backgroundworker


    【解决方案1】:

    您可以使用SetThreadExecutionState API 函数。更多信息给here

    但是,如果您确实没有必要,请不要这样做,并且当然在获得用户的明确同意之前不要这样做。当您的用户意识到他们的笔记本电脑在您的程序运行时死机时,他们会很生气。所以要适当地警告他们,以免他们生气。

    【讨论】:

    • 嗯,我错过了什么吗?我需要 SetThreadExecutionState 方法的参考吗?在哪个班?
    • 是原生调用,需要使用P/Invoke来调用。请参阅我提供的第二个链接。
    【解决方案2】:

    确实有。查看here 获取带有源代码的示例。

    【讨论】:

    • 要一个解释而不是一个链接。
    • 这是一个很好的例子,为什么您不应该只链接到外部站点...该链接仅显示“此博客已移至新位置并且 cmets 已被禁用。”,原始内容已被删除。
    【解决方案3】:

    使用 powershell 脚本让 PC 无限唤醒:

    $myshell = New-Object -com "Wscript.Shell"
    for ($i = 1; $i -gt 0; $i++) {
    Start-Sleep -Seconds 50
    $myshell.sendkeys("{F15}")
    }
    

    将以上内容保存为 blha.ps1 文件并运行。

    【讨论】:

    • 即使您的解决方案(看似)有效,但这并不是我们所要求的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2022-12-12
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多