我正在使用 UPS 服务从应用程序监控我的 UPS 的状态 - HKLM\SYSTEM\CCS\Services\UPS\Status 的键包含您可以从电源控制面板获得的所有信息。但是——我也希望能够告诉 UPS 从我的应用程序中关闭。我知道该服务可以告诉 UPS 关闭 - 例如,在使用电池运行一定分钟数后 - 我想知道是否可以向服务发送某种命令以手动启动关闭.
我在搜索这些信息时遇到了麻烦——人们倾向于拼错“Uninterruptible”(hrm,Firefox 用红线标记了它,但没有其他选择),而“UPS”只是在运输服务中得到了点击。也许我可以通过 System.ServiceController 或 WMI 做点什么?
澄清:是的,我说的是关闭物理 UPS 设备。我知道如何停止服务。我认为这将是一个常见问题——我希望我的 UPS 与 PC 一起关闭。基于此页面,我有一个想法要尝试。你看,APC(和其他所有人)必须提供一个 DLL 供 UPS 服务调用,而且由于函数调用有据可查,我没有理由不能 P/Invoke 它们。一旦我知道它是否有效,我会重新编辑它。
更新:我尝试调用 UPSInit,然后调用 UPSTurnOff,但没有任何反应。我会再修改一些,但直接调用 apcups.dll 可能是死路一条。