如何知道本次开机方式是否为通电自启

冲 支 0 信誉分
2024-11-14T16:02:43.81+00:00

背景:

我使用智能插座,可以远程控制电脑电源是否通电。以此为前提我打开了bios通电启动设置。这样实现了当我需要远程开机时,先使电脑电源断电,然后通电触发自动开机。

为了使用顺利,我将电脑设置为永不睡眠,这导致我有时忘了关机,这很不环保。如果不设置永不睡眠,那么电脑时常进入睡眠,此时我将断开远程。当然我可以按照一开始方案开机,但是开机状态断电非常不好。

问题:

本身我是一个asp.net core开发者,所以我希望使用编写服务,通过检测开机方式动态调整触发睡眠的时长。我该如何得到这个关键的值?

Windows 商业版 | 面向 IT 专业人士的 Windows 客户端 | 用户体验 | 其他
0 个注释 无注释
{count} 票

2 个答案

排序依据: 非常有帮助
  1. Wesley Li 11,275 信誉分
    2024-11-14T18:02:04.0466667+00:00

    您好,

    您可以编写一个ASP.NET Core服务来检测电脑的开机方式,并根据检测结果动态调整睡眠时间。以下是一个大致的思路:

    检测开机方式

    你可以通过读取系统日志来判断电脑是通过BIOS自动启动还是手动启动。Windows系统的事件查看器中有相关的日志记录。

    例如,事件ID 6005(事件日志服务启动)和事件ID 6006(事件日志服务停止)可以帮助你判断系统的启动和关闭情况。

    编写服务

    使用ASP.NET Core创建一个后台服务(Windows Service),该服务可以定期检查系统日志。

    根据检测到的开机方式,动态调整系统的电源设置。

    调整睡眠时间

    你可以使用PowerShell脚本来调整系统的电源计划。通过ASP.NET Core服务调用这些脚本来实现动态调整。

    例如,使用以下PowerShell命令来设置睡眠时间:

    powercfg /change standby-timeout-ac <minutes>

    通过这种方式,你可以根据电脑的开机方式动态调整睡眠时间,从而在保证远程控制的同时,尽量节约能源。


  2. ZYT 5 信誉分
    2024-12-14T01:17:00.63+00:00

    为什么不先利用系统关机,再断电呢,或者用远程软件如向日葵,检测软件HIPC,先关机再断电。

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。