![]() |
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:
Funktioniert.
Showfolder('C:\Präsentationen\');
Delphi-Quellcode:
Funktioniert ebenfalls. Nur
Showfolder('C:\Präsentationen');
Delphi-Quellcode:
Klappt nicht obwohl in Variable s genau 'C:\Präsentationen\' drinsteht.
s := listbox1.Items[listbox1.ItemIndex];
Showfolder(s); Ich hab sogar versucht den letzten Slash per copy zu entfernen damit s = 'C:\Präsentationen' beinhaltet. Auch das funktioniert nicht. Warum nur? |
Re: Explorer an einer bestimmten Stelle öffnen
Klappt es denn, wenn Du aus dem 'open' in ShowFolder ein 'explore' machst?
|
Re: Explorer an einer bestimmten Stelle öffnen
Ich mache das immer so: "explorer.exe /e,C:\MeinVerzeichnis"
|
Re: Explorer an einer bestimmten Stelle öffnen
Das sollte natürlich auch gehen, aber wenn es die Möglichkeit "explore" doch schon gibt...
|
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? |
Re: Explorer an einer bestimmten Stelle öffnen
Sollte eigentlich nicht sein, aber versuch es mal mit trim(s)
|
Re: Explorer an einer bestimmten Stelle öffnen
Fehlanzeige :(
Das gibts doch nicht! |
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; |
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. |
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 11:01 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