GetOpenFileName(): Unter XP konnte ich {20D04FE0-3AEA-xxx...} als initialDir nutzen, Vista+ kennt das nicht?
-
Aber...
MSDN schrieb:
Only real folders are valid. If a virtual folder is specified, this function fails.
-
Siebener schrieb:
Aber...
MSDN schrieb:
Only real folders are valid. If a virtual folder is specified, this function fails.
Und was willst Du damit sagen?
SHGetFolderPath liefert einen realen Folder und eben keinen virtuellen!
-
Der Arbeitsplatz.. oder eben der Ordner, wo die ganzen Laufwerke drin sind, ist doch ein virtueller Ordner.
Und den kann die Funktion ja anscheinend nicht verarbeiten.MSDN schrieb:
[in] A CSIDL value that identifies the folder whose path is to be retrieved. Only real folders are valid. If a virtual folder is specified, this function fails.

-
Du sollst doch den CISDL gar nicht benutzen. Ermittle den REALEN PFAD und übergib ihn.
Was ist denn so unklar?
-
Martin Richter schrieb:
Was ist denn so unklar?
Er will den Arbeitsplatz als Startverzeichnis angeben - was aber nicht geht, weil der Arbeitsplatz ja kein "realer" Pfad ist.
-
Badestrand schrieb:
Martin Richter schrieb:
Was ist denn so unklar?
Er will den Arbeitsplatz als Startverzeichnis angeben - was aber nicht geht, weil der Arbeitsplatz ja kein "realer" Pfad ist.
Verstehe ich was nicht. Arbeistplatz = Desktop.
Das ist doch ein realer Folder!
-
Siebener schrieb:
Der Arbeitsplatz.. oder eben der Ordner, wo die ganzen Laufwerke drin sind, ist doch ein virtueller Ordner.
-
Martin Richter schrieb:
Verstehe ich was nicht. Arbeistplatz = Desktop.
Du meinst CSIDL_DRIVES == CSIDL_DESKTOPDIRECTORY? Na, ich weiß nicht...
-
Nee CSIDL_DESKTOP == Arbeitsplatz == Desktop, oder?
-
Ich möchte, dass im Open-File Dialog alle Laufwerke angezeigt werden, so als ob man "Arbeitsplatz" anklickt, CSIDL_DRIVES halt...
-
Martin Richter schrieb:
Nee CSIDL_DESKTOP == Arbeitsplatz == Desktop, oder?
Nein, das sehe ich nicht so. Wenn ich hier im Explorer (allerdings nicht Vista) auf "Desktop" klicke, bekomme ich den Desktop zu sehen. Auf dem Desktop habe ich nun "Arbeitsplatz" liegen. Und wenn ich jetzt auf "Arbeitsplatz" klicke, komme ich nicht schon wieder auf den Desktop. Daher:
CSIDL_DESKTOP == Desktop
CSIDL_DRIVES == Arbeitsplatz
CSIDL_DESKTOP != CSIDL_DRIVES@Siebener
Ich habe hier zwar kein Vista, kann es also nicht probieren, aber: Suche mal in der Registry unter HKCR\CLSID nach dem Wort "Arbeitsplatz". Dann solltest Du sehen können, unter welchem GUID das Ganze registriert ist.
-
Hab da nix gefunden.