Einzelnen Beitrag anzeigen

BlueLiquidCell

Registriert seit: 29. Jun 2010
63 Beiträge
 
Delphi 2 Desktop
 
#1

Sound von Programm wenn nicht im Fokus

  Alt 5. Jul 2010, 10:46
Hey
Es geht um nen Flugsimulator. Das Problem dort ist, wenn man ihn im Fenstermodus laufen lässt (was für meine Anwendung nicht anders geht) dann geht der Sound sofort weg wenn man wo anders hinklickt, deshalb wollte ich halt etwas haben was ihn im Vordergrund hält oder bzw dann sofort wieder zurück bringt wenn man wo anders hingeklickt hat.
Mit Deskpins geht leider nicht, das Fenster bleibt zwar im Vordergrund aber leider nicht aktiv -> Sound geht aus
Und ich wollt das halt mit einem Button aktivieren und mit nem anderen abbrechen.
Habs jetzt so gemacht:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
    fHandle, fHandle2: HWND;
begin
    fHandle := FindWindow('fs98main', nil);
    if (fHandle <> 0) then
    begin
       BringWindowToTop(fHandle);
       SetForeGroundWindow(fHandle);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
end;
Problem 1:
Wenn der Timer auf 50ms oder 100ms gestellt ist muss man schon öfter die Abbrechen Taste drücken bis der befehl durchkommt.

Problem 2:
Wenn Ich das Programm unter Delphi teste funktioniert es immer.
Wenn ich es allerdings alleine (nur die .exe) starte, bringt es den Flugsimulator auch in den Vordergrund wenn ich aber danach ein Windows fenster anklicke funktioniert es anscheinend nicht mehr. Der Flugsimulator blinkt zwar unter in der Taskleiste kommt aber nicht in den Vordergrund.

Vlt geht das mit dem Sound ja auch anders???? Man Kann im Flugsimulator die Sound-Device ID einstellen. Kann man vlt ein Neues Device erstellen was den Sound immer weitergibt an das richtige Device?

Danke schonmal für die Antworten

Christoph