AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zwischen 2 Applicationen Toggeln

Ein Thema von AndreT · begonnen am 15. Aug 2006 · letzter Beitrag vom 15. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
AndreT

Registriert seit: 5. Nov 2004
Ort: Bocholt
82 Beiträge
 
Delphi 2006 Enterprise
 
#1

Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 09:37
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
Andre
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 09:39
Hi!

Handelt es sich bei den zwei Programmen um selbstgeschriebene Programme oder beliebige?


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
AndreT

Registriert seit: 5. Nov 2004
Ort: Bocholt
82 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 09:44
um beliebige.

Als Beispiel "Outlook.exe" und "klicktel.exe"
Andre
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 09:46
Schau mal nach MSDN-Library durchsuchenFindWindow um an das Handle zu kommen und anschließend mit MSDN-Library durchsuchenBringToFront bringst du das Fenster in den Vordergrund.
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 09:58
Ich schicke dir einen kleinen Ansatz...
  Mit Zitat antworten Zitat
AndreT

Registriert seit: 5. Nov 2004
Ort: Bocholt
82 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 09:59
Zitat von Chris P:
Ich schicke dir einen kleinen Ansatz...
Danke
Andre
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 10:03
Delphi-Quellcode:
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;
Habe es nicht ausprobiert, aber sollte vielleicht ein kleiner Ansatz sein
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 10:29
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);
  Mit Zitat antworten Zitat
AndreT

Registriert seit: 5. Nov 2004
Ort: Bocholt
82 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 12:46
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:
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;
*grübel*

mit dem 2.Ansatz das selbe
Andre
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Zwischen 2 Applicationen Toggeln

  Alt 15. Aug 2006, 14:12
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz