Neuen Ordner erstellen
-
Hi Leute,
weiß zufällig jemand, welche Prozedur abläuft, wenn ich in Windows per Datei|Neu|Ordner einen "Neuen Ordner" anlege? In der Registry finde ich nur Einträge zu diversen Dateien (Text, Word Document, Bitmap usw.). Diese Einträge enthalten wohl die Parameter für die jeweiligen DLLs. Falls die Prozedur, um den "Neuen Ordner" erstellen ähnlich abläuft, sollte ja ne API dafür verwendet werden, oder? Vielen Dank im voraus....
Gruß, Steffen
-
Servus,
Schau dir mal ...
BOOL CreateDirectory( LPCTSTR lpPathName, // pointer to a directory path string LPSECURITY_ATTRIBUTES lpSecurityAttributes // pointer to a security descriptor );... an.
MfG
Wolf
-
Jep, kenn ich......geht auch mit SHCreateDirectoryEX. Löst aber mein Problem nicht!
-
Ich persönlich wäre gewillt dir zu helfen wenn ich dein Problem verstehen würde.
Könntest du es im Detail erklären ?
-
Ich möchte einfach ein kleines Tool schreiben, das genau das Gleiche tut, wie wenn ich einen Ordner über Datei|Neu usw. erstelle. Über CreateDirectory funkioniert das zwar aber der Ordner ist nach dem Anlegen nicht im "Umbenenn-/Editier Modus" (oder wie das auch immer heißt). Einigermaßen klar, was ich will? Vielen Dank!
-
Das ist eine Sache des Explorers, das wirst du schwerlich mit deinem Programm nachbilden können. Wie soll das denn konkret ablaufen? Dein Programm startet sich und in irgeneinem Explorer-Fenster soll ein neuer Ordner erscheinen, dessen Schriftzug man editieren kann?
-
Das geht schon.
Insofern das Explorer-Fenster geöffnet ist während CreateDirectory ausgeführt wurde.
Danach muss einfach der Eintrag(im ListView des Explorer-Fensters) mit dem Namen des eben erstellen Ordners ermittelt werden. (Die Item-ID)
Über die Item-ID des Eintrages und dem Handle des ListView des Explorer-Fensters kann man per SendMessage die Message LVM_EDITLABEL senden.
Dann sollte sich der Eintrag im Umbenennen-Status befinden.Du musst also z.b. mit FindWindowEx das Explorer-Fenster über dessen Namen ermitteln und anschliessend per EnumChildWindows das ListView über den Class-Name suchen.
Dann haste das Handle des ListView und kannst damit fast alles machen was du willst.MfG
Wolf
-
Du kannst eine Shell-Extension schreiben, welche die Verzeichnisse so anzeigt wie Du es willst und dann kannst Du darin auch beliebig rumeditieren...
-
Viel Dank für die Tipps! Hat inzwischen geklappt.