Как обнаружить, когда кабель питания ноутбука отключен?
В первый раз мой ноутбук просто выключился в середине моей игры, потому что мой силовой кабель отключился, не заметив его.
Теперь я хочу написать небольшую программу на С#, которая обнаруживает, когда мой силовой кабель отключается, а затем испускает хороший длинный звуковой сигнал системы. Какой API я мог бы использовать для этого?
Ответы
Ответ 1
Это должно быть тривиально для реализации с использованием свойства SystemInformation.PowerStatus. И даже если это живет в Windows.Forms, оно должно быть прекрасно использовано из системной службы.
Для решения, которое также работает в Compact Framework, см. HOWTO: получить состояние питания устройства
Ответ 2
SystemEvents.PowerModeChanged. Вам нужно будет использовать либо GetSystemPowerStatus (см. Ссылку в одном из ответов), либо SystemInformation.PowerStatus(ссылка находится в другом ответе) в обработчике, чтобы проверить, что произошло.
Ответ 3
Это, вероятно, будет закрыто как не связанное с программированием, но вы можете проверить настройки BIOS.
Мой ноутбук Lenovo делает именно то, что вы предлагаете изначально. В моем BIOS есть настройка для подачи звукового сигнала при изменении состояния питания.
Ответ 4
Чтобы продолжить ответ BQ, в Windows есть настройки питания, которые можно изменить при удалении шнура питания. Поскольку я иногда работал с ним, я не менял параметры питания на своей машине, но когда батарея приближается к 15%, яркость экрана устанавливается на самый низкий уровень, что позволяет работать (и легко заменяется клавишей Fn-Home), но очень заметно, так что я снова подключаю кабель.
Ответ 5
Здесь небольшое решение:
используя приложение формы Windows С#,
PowerStatus powerStatus = SystemInformation.PowerStatus;
if (powerStatus.PowerLineStatus == PowerLineStatus.Online)
{
MessageBox.Show("Running On Power", Convert.ToString(powerStatus.BatteryLifePercent * 100) + "%");
}
else
{
MessageBox.Show("Running On Battery", Convert.ToString(powerStatus.BatteryLifePercent * 100) + "%");
}
Надеюсь, у вас есть идея, теперь вы можете использовать ее каким-либо образом,...........
Ответ 6
Это может сильно зависеть от вашей точной операционной системы.
Вот несколько вызовов для Windows XP, я уверен, вы можете найти эквиваленты Vista:
http://msdn.microsoft.com/en-us/library/ms704147(VS.85).aspx
Ответ 7
Невозможно думать о чем-либо, непосредственно доступном через платформу .NET, но я знаю, что у Intel есть SDK Mobile Platform с библиотеками .NET, которые должны предоставить вам эту информацию. Возможно, AMD имеет где-то равную.
Intel Mobile Platform SDK