![]() |
Zwischen 2 Applicationen Toggeln
Hallo, guten Morgen zusammen.
Mir fehlt noch komplett irgendwie der Ansatz. Ich möchte ein Programm schreiben, mit dem ich Timergesteuert (das ist weniger das Problem) zwischen 2 Programmen, dessen Namen bekannt sind, hin und her schalten kann. Also immer Abwechselnd ...Program A maximiert im Vordergrund, dann Programm B und dann wieder A und......... Ich bin mit meinen Versuchen immer gescheitert. Gibt es sowas wie Application.maximize('A.exe');? ..oder BringinFront Danke Gruß Andre |
Re: Zwischen 2 Applicationen Toggeln
Hi!
Handelt es sich bei den zwei Programmen um selbstgeschriebene Programme oder beliebige? Ciao, Frederic |
Re: Zwischen 2 Applicationen Toggeln
um beliebige.
Als Beispiel "Outlook.exe" und "klicktel.exe" |
Re: Zwischen 2 Applicationen Toggeln
Schau mal nach
![]() ![]() |
Re: Zwischen 2 Applicationen Toggeln
Ich schicke dir einen kleinen Ansatz...
|
Re: Zwischen 2 Applicationen Toggeln
Zitat:
|
Re: Zwischen 2 Applicationen Toggeln
Delphi-Quellcode:
Habe es nicht ausprobiert, aber sollte vielleicht ein kleiner Ansatz sein ;-)
var
B: Boolean; Handle1, Handle2 : HWND; procedure TForm1.FormCreate(Sender: TObject); begin Handle1 := FindWindow(nil , PCHAR('Fenster1')); // <--- 1. Fenstertitel einsetzen Handle2 := FindWindow(nil , PCHAR('Fenster2')); // <--- 2. Fenstertitel einsetzen end; procedure TForm1.Timer1Timer(Sender: TObject); begin B := not B; if B then SetForegroundWindow(handle1) // <--- statt BringToFront else SetForegroundWindow(handle2); // <--- statt BringToFront end; |
Re: Zwischen 2 Applicationen Toggeln
Das hier sollte besser gehen, aber nur wenn die Fenster sichtbar sind und nicht minimiert.
Delphi-Quellcode:
if B then
SetwindowPos(handle1, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE) else SetwindowPos(handle2, HWND_TOPMOST,0 , 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE); |
Re: Zwischen 2 Applicationen Toggeln
Mit Fenstertitel ist das was oben im "blauen" steht gemeint, oder der Name der Anwendung?
Funktioniert nämlich leider beides bei mir nicht. Es passiert garnichts :( Code mit dem Namen der Anwendung (Mit Fenstertitel hab ich es auch probiert):
Delphi-Quellcode:
*grübel*
var
Form1: TForm1; B: Boolean; Handle1, Handle2 : HWND; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong( Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW); Handle1 := FindWindow(nil , PCHAR('Programm1.exe')); // <--- 1. Fenstertitel einsetzen Handle2 := FindWindow(nil , PCHAR('Programm2.exe')); // <--- 2. Fenstertitel einsetzen end; procedure TForm1.Timer1Timer(Sender: TObject); begin B := not B; if B then SetForegroundWindow(handle1) // <--- statt BringToFront else SetForegroundWindow(handle2); // <--- statt BringToFront end; mit dem 2.Ansatz das selbe |
Re: Zwischen 2 Applicationen Toggeln
Also bei mir funktioniert es.
Hast du die 2 Fenster auch geöffnet? Öffne die 2 Fenster und nimm die 2 Fenstertitel, z.b: 'Arbeitsplatz'. Nicht den EXE-Namen. Das SetWindowLong brauchst du nicht... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz