Entwickler-Ecke

Windows API - Wiedergabe unterbrechen bei Standby-Modus


stigge - Mi 21.03.07 20:00
Titel: Wiedergabe unterbrechen bei Standby-Modus
Ist es möglich, das wenn der Computer in den Standby-Modus gesetzt wird, die Wiedergabe einer MP3-Datei angehalten wird?
Also sozusagen:

Delphi-Quelltext
1:
2:
if computergehtinstandbymodus then
mediaplayer2.pause;



Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 21.03.2007 um 19:09


Billi Berserker - Mi 21.03.07 20:29

message handler für WM_POWERBROADCAST
http://msdn2.microsoft.com/en-us/library/aa373247.aspx


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
type
  TForm1 = class(TForm)
    ...
  private
    ...
    procedure WMPowerBroadcast(var msg : TMessage); message WM_POWERBROADCAST;
  end;

implementation

procedure TForm1.WMPowerBroadcast(var msg : TMessage);
begin
  case msg.WParam of
    PBT_APMSUSPEND: mediaplayer2.pause;
    PBT_APMRESUMESUSPEND: mediaplayer2.play;
  end;
  msg.Result := 1;
end;


stigge - Mi 21.03.07 20:34

user profile iconBilli Berserker hat folgendes geschrieben:
message handler für WM_POWERBROADCAST
http://msdn2.microsoft.com/en-us/library/aa373247.aspx


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
type
  TForm1 = class(TForm)
    ...
  private
    ...
    procedure WMPowerBroadcast(var msg : TMessage); message WM_POWERBROADCAST;
  end;

implementation

procedure TForm1.WMPowerBroadcast//(var msg : TMessage);//Kann man diesen Teil auch weglassen?
begin
  case msg.WParam of
    PBT_APMSUSPEND: mediaplayer2.pause;//also was passiert, wenn er in den Stanby-Modus geht?
    PBT_APMRESUMESUSPEND: mediaplayer2.play;//und was passiert, wenn er wieder "aufwacht"?
  end;
  msg.Result := 1;//Und diesen Teil kann man auch weglassen?
end;


Billi Berserker - Mi 21.03.07 21:44

Der MSDN Link steht da übriegens nicht zum spaß :)


user profile iconstigge hat folgendes geschrieben:

Delphi-Quelltext
1:
procedure TForm1.WMPowerBroadcast //(var msg : TMessage);//Kann man diesen Teil auch weglassen?                    

Nein.. in dem Parameter stecken die eigenschaften der empfangenen Nachricht drin... siehe "case msg.wparem of"


user profile iconstigge hat folgendes geschrieben:

Delphi-Quelltext
1:
PBT_APMSUSPEND: mediaplayer2.pause;//also was passiert, wenn er in den Stanby-Modus geht?                    

http://msdn2.microsoft.com/en-us/library/aa372721.aspx => Notifies applications that the computer is about to enter a suspended state.


user profile iconstigge hat folgendes geschrieben:

Delphi-Quelltext
1:
PBT_APMRESUMESUSPEND: mediaplayer2.play;//und was passiert, wenn er wieder "aufwacht"?                    

http://msdn2.microsoft.com/en-us/library/aa372720.aspx => Notifies applications that the system has resumed operation after being suspended.


user profile iconstigge hat folgendes geschrieben:

Delphi-Quelltext
1:
msg.Result := 1;//Und diesen Teil kann man auch weglassen?                    

http://msdn2.microsoft.com/en-us/library/aa373247.aspx
Return Value
Return TRUE to grant a request.
Return BROADCAST_QUERY_DENY to deny a request.
=> läßt du es weg fährt dein Rechner nicht mehr in den Standby Modus