![]() |
Richtiges Window finden
Hallö'chen :),
ich habe ein Programm geschrieben, mit dem ich über OLE auf den Internetexplorer zugreife und z.B. das BrowserFenster zoomen kann. Funktioniert soweit auch ziehmlich klasse, ich überprüfe erst, ob schon ein IE Fenster da ist:
Code:
wenn nun schon ein IE fenster da ist, dann muss ich einer
WinHanlde := FindWIndow( 'IEFrame', nil );
if( 0 <> WinHanlde )then BEGIN //benutze das exestierende Fenster END ELSE BEGIN //mach einen eigenes IE - Fenster auf END; OLEvariant - Variablen, nur noch die ID des Fensters zuweisen und kann dann z.B. mit ihm zu einer gewünschten URL browsen:
Code:
wenn kein Fenster da ist, muss ich einfach ein neues erstellen
IEApp := GetActiveOleObject('InternetExplorer.Application');
IEApp.Navigate(URL); und kann dann damit Browsen, alles kein Problem:
Code:
Mein Problem ist jetzt nur, dass wenn schon mehrere IE Fenster
IEApp := CreateOLEObject('InternetExplorer.Application');
IEApp.Visible := True; IEApp.Navigate(URL); offen sind, immer das Fenster genommen wird, was ich erstellt habe oder wenn ich keins erstellt habe, das was generell als erstes geöffnet wurde. Und wenn das geschlossen wurde ... dann das welches als 2tes geöffnet wurde und so weiter. Es ist mir klar, dass das Problem an der Zuweisung IEApp := GetActiveOleObject('InternetExplorer.Application') ; liegt, da die Funktion GetActiveOleObject mit sicherheit einfach die ID des als erstes im Speicher gefundenen IE - Fensters ausgibt. Das ist aber blöd, da mein Programm dann immer nur bei diesem Fenster funktioniert, ich hätte es viel lieber, wenn das Fenster genommen werden würde, was als letztes den Fokus hatte. Hat da vielleicht jemand eine Idee? Wie bekomme ich herraus, welches fenster als letztes den Fokus hatte? Falls jemand eine Idee hätte, würde ich mich wie immer sehr freuen. MFG Evian :dp: |
Re: Richtiges Window finden
Auch Hallöchen!
Hab da so eine Idee. Vielleicht klappt es ja. 1. Alle IEFrames mit EnumWindows suchen. 2. Alle Fenster bis auf das, welches Du angraben möchtest, mit SetWindowPos verstecken. 3. Jetzt kommt der Moment, wo der Frosch ins Wasser rennt: GetActiveDingenskirchen aufrufen. 4a. Du hast jetzt das richtige Fenster erwischt und zeigst alle anderen Fenster wieder an. :bounce1: 4b. Du hast nach wie vor Mist und vergisst alles, was ich geschrieben habe. :pale: Viel Glück + gib Meldung ab OLLI |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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