Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Mit ShellExecute "vorhandenes" Explorerfenster öffnen? (https://www.delphipraxis.net/193342-mit-shellexecute-vorhandenes-explorerfenster-oeffnen.html)

sko1 19. Jul 2017 13:33

Mit ShellExecute "vorhandenes" Explorerfenster öffnen?
 
Hallo,

ich nutze ShellExecute um in meinem Programm den Explorer zu öffnen und eine im Programm erzeugte Datei anzuzeigen (zu markieren).

Das funktioniert bestens, außer das bei jedem Aufruf ein neues Explorerfenster geöffnet wird.

Gibt es einen Trick, um ShellExecute zu veranlassen, ein eventuell bereits bestehendes Explorerfenster zu benutzen?

Ciao
Stefan

Der schöne Günther 19. Jul 2017 14:54

AW: Mit ShellExecute "vorhandenes" Explorerfenster öffnen?
 
Stattdessen
Delphi-Quellcode:
SHOpenFolderAndSelectItems(..)
benutzen:

https://stackoverflow.com/a/15301028/2298252

Delphi-Quellcode:
uses
  WinApi.ShellApi,
  WinApi.ShlObj;

function OpenFolderAndSelectFile(const FileName: string): boolean;
var
  IIDL: PItemIDList;
begin
  result := false;
  IIDL := ILCreateFromPath(PChar(FileName));
  if IIDL <> nil then
   try
     result := SHOpenFolderAndSelectItems(IIDL, 0, nil, 0) = S_OK;
   finally
     ILFree(IIDL);
   end;
end;

Glados 19. Jul 2017 14:59

AW: Mit ShellExecute "vorhandenes" Explorerfenster öffnen?
 
Zitat:

Gibt es einen Trick, um ShellExecute zu veranlassen, ein eventuell bereits bestehendes Explorerfenster zu benutzen?
OpenFolderAndSelectFile öffnet, zumindest unter Windows 7, trotzdem ein neues Fenster WENN der Parameter eine Datei ist. Ist es ein Verzeichnis, funktioniert es so wie der TE es wünscht.
Hab Quatsch erzählt. Muss wohl Zufall gewesen sein, dass sich trotzdem ein neues Fenster geöffnet hat.

sko1 20. Jul 2017 06:26

AW: Mit ShellExecute "vorhandenes" Explorerfenster öffnen?
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1377026)
Stattdessen
Delphi-Quellcode:
SHOpenFolderAndSelectItems(..)
benutzen:

https://stackoverflow.com/a/15301028/2298252

Vielen herzlichen Dank, funktioniert hervorragend!

Ciao
Stefan


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