Я пытаюсь поймать событие BatteryStatusChange в WMI. Когда я выполняю свою программу, я вообще не получаю никаких событий батареи, когда батарея начинает заряжаться или разряжается.
Это мой код, который я пытаюсь из:BatteryStatusChange Событие WMI не принимается
namespace BatteryStatusChange
{
class Program
{
static void Main(string[] args)
{
try
{
WqlEventQuery query = new WqlEventQuery(
"SELECT * FROM BatteryStatusChange");
ManagementScope Scope = new ManagementScope(String.Format("\\\\{0}\\root\\WMI", "localhost"), null);
Scope.Connect();
ManagementEventWatcher watcher = new ManagementEventWatcher(Scope, query);
Console.WriteLine("Waiting for an event...");
ManagementBaseObject eventObj = watcher.WaitForNextEvent();
Console.WriteLine("{0} event occurred.", eventObj["__CLASS"]);
// Cancel the event subscription
watcher.Stop();
return;
}
catch (ManagementException err)
{
MessageBox.Show("An error occurred while trying to receive an event: " + err.Message);
}
}
}
}
Когда я выполняю эту программу, я не получаю никаких событий батареи на всех либо когда батарея начнет заряжаться или разрядка.
Я также попытался немного разные строки запроса, как показано ниже, но безрезультатно:
SELECT * FROM BatteryStatusChange WHERE PowerOnline = TRUE
Любая помощь будет принята с благодарностью.
Это замечательно. Цените свой ответ и извините за задержку в принятии этого ответа. – Sandman
Нет проблем. рад помочь вам. – RRUZ