webentwicklung-frage-antwort-db.com.de

Ereignis zum Erkennen des Systems aus dem Schlaf in C #

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?

22
Pankaj
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

33
Marcus

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.

7
Moo-Juice
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

0
habib