Forum: Win32/Win64 API (native code)
by MicMic,
29. Sep 2018
Hallo, wenn du dich erinnern kannst...
An der Funktion (bzw. an meine Funktion die ich entsprechend für meine Bedürfnisse abgeändert habe <- nachfolgender Code), bin ich gerade noch am rumwerkeln.
Function PathToCS(Const Path: UnicodeString): UnicodeString;
Var
Count: ULONG;
Attrs: ULONG;
ShellFolder: IShellFolder;
Pa: Array Of Char;
Pidl: PItemIDList;
Forum: Win32/Win64 API (native code)
by MicMic,
19. Aug 2018
@KodeZwerg... danke für die Info zum WideString.
@Luckie... Ja, die originale Groß-Kleinschreibung dient nur zur Ansicht. Deswegen keine weitere Fehlerbehandlung. Wenn's halt nicht geht, bleibt der Pfad halt so, wie er zuvor angegeben wurde.
Deswegen habe ich auch aus den zwei Funktionen (die ich ja nicht schlecht mache), eine gebaut. Ist ja dann auch einfach anzugeben "path :=...
Forum: Win32/Win64 API (native code)
by MicMic,
19. Aug 2018
Danke @KodeZwerg
Geht SUPER. Dankeschön
Habe noch zwei Fragen. Im "if not" Bereich steht "CoTaskMemFree". Sonst nicht.
Sollte es nicht so oder so ausgeführt werden? Aber es ist ja hier ein "Result" was ja gebraucht wird.
Dann kenne ich das "WideString" gar nicht. Bei "PWideChar(WideString(Path))". Ich mach sonst immer ein "PWideChar(Path)". Das geht auch aber was ist der Unterschied? Da...
Forum: Win32/Win64 API (native code)
by MicMic,
18. Aug 2018
Danke für die Hilfestellung.
habe mal alles ausprobiert (ExtractFilePath, ExpandFileName, GetDirectoryName) und mit SHGetFileInfo auch herumexperimentiert.
Keine Erfolge und zu "ExpandFileNameCase"... (kannte ich noch nicht) da kann man etwas herausholen aber dennoch müsste man das Verzeichnis (z.B. "C:\Ich\bin\so\froh\wie\der\Mops\im\Hafenstroh\") splitten und in Strings aufteilen. Am Ende...
Forum: Win32/Win64 API (native code)
by MicMic,
18. Aug 2018
Ist mir ein Begriff, kenne es aber nur in Verbindung mit Standard-Ordner/System-Ordner usw.
Wenn ich jetzt z.B. ein neuen Ordner anlege "C:\TeSt", würde ich gerne ohne FindFirst/Next da herankommen, sprich ich übergebe "c:\test" und bekomme "C:\TeSt" zurück.
Michael