Ich muss den Betriebszustand des Systems erkennen. Um genau zu sein, brauche ich ein Ereignis, das ausgelöst wird, wenn Windows 7 aus dem Schlaf erwacht. Ich verwende bereits:
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
Das Problem bei diesem Ereignis besteht jedoch darin, dass es viermal erhöht wird: Möglicherweise, wenn der Computer in den Ruhezustand wechselt und der Computer nach dem Aufwachen wieder aufweckt. Ich möchte ein Ereignis, das nur beim Wecken des Computers ausgelöst wird. Gibt es eine Veranstaltung dafür?
SystemEvents.PowerModeChanged += OnPowerChange;
private void OnPowerChange(object s, PowerModeChangedEventArgs e)
{
switch ( e.Mode )
{
case PowerModes.Resume:
break;
case PowerModes.Suspend:
break;
}
}
Sie sollten dies wahrscheinlich lesen: http://msdn.Microsoft.com/de-de/library/Microsoft.win32.systemevents.powermodechanged.aspx
Sie müssen die Mode
-Eigenschaft von PowerModeChangedEventArgs
prüfen, die an das Ereignis übergeben wird.
Von MSDN:
Resume
Das Betriebssystem wird gerade aus einem angehaltenen Zustand wieder aufgenommen.
StatusChange
Ein Benachrichtigungsereignis für den Energiemodus wurde vom Betriebssystem ausgelöst. Dies kann auf eine schwache oder Aufladung hinweisen Batterie, ein Wechsel zwischen Netzstrom und Batterie oder eine andere Änderung im Status der Systemstromversorgung.
Suspend
Das Betriebssystem wird gerade ausgesetzt.
SystemEvents.PowerModeChanged += OnPowerModeChange;
private void OnPoweModerChange(object s, PowerModeChangedEventArgs e)
{
if(e.Mode==PowerModes.Suspend)
{
//Apply your operation
}
}
Verwenden Sie diesen Code, um Ihre Arbeit zu erledigen