Entwickler-Ecke
Windows API - Problem bei ShellExecute und tree.exe
cyberbug - Sa 01.03.08 10:44
Titel: Problem bei ShellExecute und tree.exe
Guten Morgen,
ich habe folgendes Problem:
Ich habe ein kleines Programm programmiert, mit dessen Hilfe es möglich sein soll, die Struktur eies Ordners, oder einer Festplatte in einer Textdatei(*.txt) zu speichern. Dafür habe ich ein Editfeld(edtVerzeichnis), einen Button(btnDateienLesen) und eine Checkbox(chkLog).
Wenn in der Chekbox ein Häkchen ist, und der Button geklickt wird, soll die Struktur(oder wie man das nennt) in einer Textdatei gespeichert werden.
Folgender code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.btnDateienLesenClick(Sender: TObject); begin if chkLog.Checked = True then begin ShellExecute(application.Handle, 'open', PChar('tree'), PChar(edtVerzeichnis.Text + ' /F /A > Log_' + edtVerzeichnis.Text + '.txt'), nil,SW_HIDE); end;
end; |
In das Editfeld sollte zuvor ein Pfad wie: C: eingegeben werden.
ShellApi hab ich in die uses eingebunden. Beim Compilieren kommt soweit auch kein Fehler, doch wenn ich einen pfad eingebe, ein häkchen setze undauf den button klicke, passsiert nix(keine Textdatei wird erstellt!).
Was habe ich falsch gemacht und sollte ich dafür überhaupt ShellExecute verwenden? Wenn nein, welchen Befehl dann?
Ich freue mich auf Antworten,
MFG cyberbug
Delete - Sa 01.03.08 11:11
denke, hier solltest beser mit findfirst und findnext arbeiten. ob dir die kompo tshelltree weiterhilft kann ich nicht sagen, noch nie gebraucht...
AXMD - Sa 01.03.08 11:27
Umleitungen (> und <) sind Shell-Funktionalitäten, werden aber in den ShellExecute-Funktionsaufrufen nicht direkt unterstützt. Du könntest versuchen, cmd.exe per ShellExecute zu starten und in cmd.exe dann das Programm ausführen lassen, denn cmd.exe unterstützt Umleitungen. Ob das sicher funktioniert weiß ich nicht, das müsstest du ausprobieren.
AXMD
cyberbug - Sa 01.03.08 18:03
also mit findfirst und findnext habe ich schon gearbeitet, das gehört schon zum programm. Im allgemeinen ist mein prograamm ja einen art Explorer, nur man kann nirgendswo klicken, sondern sich nur alles anzeigen lassen. Als Zusatzfunktion möchte ich aber noch die Möglichkeit bieten, die Verzeichniss struktur in eine Textdatei zu speichern.
@jaenicke:
So ganz versteh ich dass nicht was da steht... :oops:
Könnte mir das mal jemand( bitte, bitte, bitte :wink: )so umschreiben, dass ich den code in meinem Programm verwenden kann?? thx
MFG cyberbug
PS: Vielen Dank für jede Antwort :wink:
Lannes - Sa 01.03.08 18:22
Hallo,
hast Du die eingelesene Struktur in einem TreeView?
Den Inhalt eines TreeView kann man direkt in eine Textdatei schreiben:
cyberbug - Sa 01.03.08 18:29
@Lannes
ich glaube du hast meine frage falsch verstanden:
ich will nicht das in eine Textdatei speichern, was ich mit Findnext usw. herausbekommen habe, sondern ich möchte tree.exe dazu benutzen, um die vollständige struktur zu speichern. mit inhalt von unterordnern, und deren inhalt...
die struktur habe ich übrigens in einem stringgrid
MFG cyberbug
jaenicke - Sa 01.03.08 18:53
Der Funktion GetConsoleOutput, die du auf der von mir verlinkten Seite gefunden hast, musst du nur den Befehl übergeben, der ausgeführt werden soll, sowie eine TStringList für Fehlerausgaben und eine für die normalen Ausgaben.
In diese StringLists wird dann die Ausgabe automatisch gepackt. Und damit kannst du dann arbeiten.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!