我的笔记本电脑在我的游戏过程中一直关闭,因为我的电源线断开连接而没有注意到它。
现在我想编写一个小C#程序,检测我的电源线断开连接然后发出一声很长的系统蜂鸣声。我可以使用什么API?
答案 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可能会在某个地方使用等效产品。