Я использую службу ИБП для мониторинга состояния моего ИБП из приложения — ключ в HKLM\SYSTEM\CCS\Services\UPS\Status содержит всю информацию, которую вы можете получить из панели управления питанием. НО - я хотел бы также указать ИБП, чтобы он отключился из моего приложения. Я знаю, что служба может приказать ИБП отключиться, например, после работы в течение заданного количества минут от батареи, и мне интересно, есть ли какая-то команда, которую я могу отправить службе, чтобы инициировать отключение вручную. .
У меня возникли проблемы с поиском этой информации — люди склонны неправильно писать «непрерывный» (хм, Firefox выделил это красным, но не имеет альтернативы), а «UPS» просто попадает в службу доставки. Может быть, я могу что-то сделать через System.ServiceController или WMI?
ПОЯСНЕНИЕ: Да, я говорю об отключении физического устройства ИБП. Я знаю, как остановить службу. Я полагал, что это будет распространенная проблема — я хочу, чтобы мой ИБП выключался вместе с ПК. У меня возникла идея, которую я собираюсь попробовать, на основе этой страницы. Видите ли, APC (и все остальные) должны предоставить DLL для вызова службы UPS, и, поскольку вызовы функций хорошо документированы, нет никаких причин, по которым я не мог бы P/Invoke их. Я отредактирую это, как только узнаю, сработало это или нет.
Обновление: я попытался вызвать UPSInit, затем UPSTurnOff, но ничего не происходит. Я поработаю с этим еще немного, но прямой вызов apcups.dll может оказаться тупиком.