如何检测笔记本电脑电源线何时断开?

时间:2008-12-07 18:25:00

标签: c# .net

我的笔记本电脑在我的游戏过程中一直关闭,因为我的电源线断开连接而没有注意到它。

现在我想编写一个小C#程序,检测我的电源线断开连接然后发出一声很长的系统蜂鸣声。我可以使用什么API?

7 个答案:

答案 0 :(得分:11)

使用SystemInformation.PowerStatus属性实现这一点应该是微不足道的。即使它存在于Windows.Forms中,它也应该可以从系统服务中完全使用。

对于也适用于Compact Framework的解决方案,请参阅HOWTO: Get the Device Power Status

答案 1 :(得分:8)

SystemEvents.PowerModeChanged。您将需要在处理程序中使用GetSystemPowerStatus(请参阅其中一个答案中的链接)或SystemInformation.PowerStatus(链接在另一个答案中)来检查发生了什么。

答案 2 :(得分:2)

这可能会因为与编程无关而关闭,但您可能需要检查BIOS设置。

我的联想笔记本电脑完全符合您的本土建议。我的BIOS中有一个设置可以发出电源状态变化的声音。

答案 3 :(得分:2)

要继续BQ的回答,Windows中的电源设置可以在拔下电源线时更改。由于我有时使用它已删除我没有更改我的机器上的电源设置,但当电池接近15%时,屏幕亮度设置为最低级别,使其可以工作(并可以使用Fn-Home键轻松更改) )但非常明显,以便我及时将电缆插回。

答案 4 :(得分:1)

这里有一点解决方案: 使用C#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) + "%");
}

希望,你明白了,现在你可以用任何方式使用它,............

答案 5 :(得分:0)

这可能在很大程度上取决于您的确切操作系统。 以下是对Windows XP的一些调用,我相信你可以找到Vista等价物:

http://msdn.microsoft.com/en-us/library/ms704147(VS.85).aspx

答案 6 :(得分:0)

无法想象通过.NET框架可以直接访问的任何内容,但我知道英特尔拥有带有.NET库的Mobile Platform SDK,可以为您提供此信息。 AMD可能会在某个地方使用等效产品。

Intel Mobile Platform SDK