Einzelnen Beitrag anzeigen

UliBru

Registriert seit: 10. Mai 2010
155 Beiträge
 
Delphi 11 Alexandria
 
#1

WndProc bei Programmen im Hintergrund

  Alt 4. Jul 2013, 14:25
Hi,

ich hab da in einem Programm folgenden Code, um z.B. Play und Stop per Fernbedienung zu realisieren (Stichwort HID USB):
Delphi-Quellcode:
type
  TMainForm = class(TForm)
    ...
  protected
    procedure WndProc(var Message: TMessage); override;
  public
    procedure StopMyPlayback;
    procedure StartMyPlayback;
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.WndProc(var Message: TMessage);
const
  FAPPCOMMAND_MASK = $F000;
var
  cmd: integer;
begin
  inherited;
  if (Message.Msg = WM_APPCOMMAND) then
  begin
    cmd := Message.LParamHi and not FAPPCOMMAND_MASK;
    case cmd of
      APPCOMMAND_MEDIA_STOP: StopMyPlayback;
      APPCOMMAND_MEDIA_PLAY: StartMyPlayback;
    end;
  end;
end;
Das läuft soweit. Aber nur, solange das Programm in Vordergrund aktiv ist.
Was ist zu tun, damit es auch startet und stoppt, wenn das Prog minimiert ist?
Wo finde ich vielleicht ein Beispiel?

Ich ahne bereits, dass da irgendein gewaltiger zusätzlicher Overhead nötig wird (Hook, dll etc.), aber vielleicht geht es doch ganz einfach.

Uli
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat