Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Explorer an einer bestimmten Stelle öffnen (https://www.delphipraxis.net/121569-explorer-einer-bestimmten-stelle-oeffnen.html)

Ajin 30. Sep 2008 14:53


Explorer an einer bestimmten Stelle öffnen
 
Hallo DP!

Ich durchsuche meine Festplatte nach z.B. Powerp*int Präsentationen und liste die Ergebnis in einer Listbox auf. Ein Beispieleintrag sieht z.B. so aus: C:\Präsentationen\

Mittels Doppelklick auf einen Eintrag in der Listbox soll ein Explorerfenster an der richtigen Stelle aufgeben. Das wollte ich so lösen:


Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
////
//// Ordner Öffnen
////
procedure ShowFolder(strFolder: string);
begin
  ShellExecute(Application.Handle, PChar('open'), PChar(strFolder), nil, nil, SW_SHOWNORMAL);
end;

procedure TFmain.ListBox1DblClick(Sender: TObject);
var s:string;
begin
 s := listbox1.Items[listbox1.ItemIndex];
 Showfolder(s);
end;

Das klappt nicht, es wird kein Explorer angezeigt. Sehr seltsam. Ich habe es dann dann manuell getestet:

Delphi-Quellcode:
Showfolder('C:\Präsentationen\');
Funktioniert.

Delphi-Quellcode:
Showfolder('C:\Präsentationen');
Funktioniert ebenfalls. Nur

Delphi-Quellcode:
s := listbox1.Items[listbox1.ItemIndex];
Showfolder(s);
Klappt nicht obwohl in Variable s genau 'C:\Präsentationen\' drinsteht.

Ich hab sogar versucht den letzten Slash per copy zu entfernen damit s = 'C:\Präsentationen' beinhaltet. Auch das funktioniert nicht. Warum nur?

DeddyH 30. Sep 2008 14:55

Re: Explorer an einer bestimmten Stelle öffnen
 
Klappt es denn, wenn Du aus dem 'open' in ShowFolder ein 'explore' machst?

jbg 30. Sep 2008 14:56

Re: Explorer an einer bestimmten Stelle öffnen
 
Ich mache das immer so: "explorer.exe /e,C:\MeinVerzeichnis"

DeddyH 30. Sep 2008 15:00

Re: Explorer an einer bestimmten Stelle öffnen
 
Das sollte natürlich auch gehen, aber wenn es die Möglichkeit "explore" doch schon gibt...

Ajin 30. Sep 2008 15:09

Re: Explorer an einer bestimmten Stelle öffnen
 
Ich habe 'open' durch 'explore' ersetzt, keine Wirkung.

Steht in dem 's' noch irgendwas zusätzliches drin dass man mit einer Showmessge(s) auf den ersten Blick nicht sehen kann? Evtl. Steuerzeichen oder sowas?

DeddyH 30. Sep 2008 15:18

Re: Explorer an einer bestimmten Stelle öffnen
 
Sollte eigentlich nicht sein, aber versuch es mal mit trim(s)

Ajin 30. Sep 2008 15:21

Re: Explorer an einer bestimmten Stelle öffnen
 
Fehlanzeige :(

Das gibts doch nicht!

mirage228 30. Sep 2008 16:00

Re: Explorer an einer bestimmten Stelle öffnen
 
Lass Dir mal die Fehlermeldung von ShellExecute ausgeben...

Delphi-Quellcode:
  if ShellExecute(Self.Handle, 'explore', PChar(Folder), nil, nil, SW_SHOWNORMAL) <= 32 then
      RaiseLastOSError;

Ajin 30. Sep 2008 16:15

Re: Explorer an einer bestimmten Stelle öffnen
 
Interessant, das gibt folgendes Feedback:

System Error. Code : 2.
Das System kann die angegebene Datei nicht finden.

ALso ist doch was Faul am String 's' - obwohl er gemäß Showmessage 'C:\Präsentationen' lautet.

roga 30. Sep 2008 16:22

Re: Explorer an einer bestimmten Stelle öffnen
 
Hallo,

wird der Listeneintrag auch korrekt übergeben?

Vielleicht mal testen:
showmessage(listbox1.Items[listbox1.ItemIndex]);

oder vielleicht so:
s := listbox1.Items.Strings[listbox1.ItemIndex];


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.
Seite 1 von 3  1 23      

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