Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Neuen Pfad in bestehendem Explorer-Fenster öffnen (https://www.delphipraxis.net/24889-neuen-pfad-bestehendem-explorer-fenster-oeffnen.html)

Cleaner 28. Jun 2004 09:37


Neuen Pfad in bestehendem Explorer-Fenster öffnen
 
Hallo,

Ich suche eine Möglichkeit, ein bestehendes Explorer-Fenster durch mein Programm zu zwingen zu einem bestimmten Pfad zu navigieren. Die Suchfunktion habe ich schon bemüht, leider letztlich erfolglos: Ich habe mal versucht über IShellBrowser.BrowseObject zum Ziel zu kommen, aber bekam immer eine AccessViolation; auf der MSDN Seite ist dann auch zu lesen, dass Applikationen dieses Interface nicht implementieren (sollen?).
Ist mein Wunsch vielleicht gar nicht erfüllbar? Würde mich über Antworten freuen.

Grüße

Cleaner

raeschnix 28. Jun 2004 10:35

Re: Neuen Pfad in bestehendem Explorer-Fenster öffnen
 
Schau Dir mal die TWebbrowser Komponente an. Damit sollte Dein Problem lösbar sein. Ich weiss jetzt nicht genau ob ein neues IE Fenster aufgeht, aber auf ne Seite navigieren funktioniert damit problemlos.

Gruss
raeschnix

shmia 28. Jun 2004 10:48

Re: Neuen Pfad in bestehendem Explorer-Fenster öffnen
 
Folgendes Code-Fragment lässt alle offenen Browserfenster Delphipraxis.net anzeigen:
Delphi-Quellcode:
uses ...,SHDocVw_TLB;

procedure TForm1.Button2Click(Sender: TObject);
var
//   sw : IShellWindows;
   i : Integer;
   it : OleVariant;
   sw : OleVariant;
begin
   sw := CoShellWindows.Create;
//   sw := CreateOleObject('SHDocVw.ShellWindows');

   for i := 0 to sw.Count-1 do
   begin
      it := sw.Item(i);
      it.Navigate('http://www.delphipraxis.net');
//      it.Quit;
   end;
end;

Cleaner 28. Jun 2004 15:23

Re: Neuen Pfad in bestehendem Explorer-Fenster öffnen
 
Das letzte ist genau das, was ich gesucht habe, danke shmia!
Ich würde jetzt allerdings gerne nur das zuletzt aktive Fenster ansteuern. Mit
Delphi-Quellcode:
var
  h: HWND;
  Buffer: array[0..255] of char;
  sTitle: string;
begin
  h := FindWindow('ExploreWClass',nil);
  if h <> 0 then begin
    GetWindowText(h, Buffer, SizeOf(Buffer) - 1);
    if Buffer[0] <> #0 then sTitle := Copy(StrPas(Buffer), 1, SizeOf(Buffer));
  end;
[...]
gelingt es mir auch, den Handle / Titel des zuletzt aktiven Fensters zu erhalten, ich weiß aber nicht, wie ich diese beiden Codes zusammenführen soll. Konkret in shmias Lösung fehlt mir jetzt die Möglichkeit, die Titel der Fenster auszulesen; dann könnte ich nämlich
1. Titel des zuletzt aktiven Explorers auslesen
2. mir mit shmias Code dieses Fenster holen
3. in diesem Fenster navigieren.

Sorry, wenn das Problem trivial klingt, ich habe leider auf dem Gebiet keine Ahnung.

Grüße

Cleaner

Cleaner 29. Jun 2004 19:34

Re: Neuen Pfad in bestehendem Explorer-Fenster öffnen
 
Nach ein bisschen basteln hats doch noch geklappt, danke euch beiden nochmal für eure Hilfe.

Grüße

Cleaner

Remote1 6. Aug 2004 21:30

Re: Neuen Pfad in bestehendem Explorer-Fenster öffnen
 
kanst du deine lösung bitte auch mal posten, falls jemand dies benötigt (ich z.b.)

ich brauch nämlich die url des aktiven fensters und dein problem geht ja auch in die richtung


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 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