Besorgen Sie sich einen allgemeinen Desktop-Pfad in .NET

8

Ich muss Dateien auf dem allgemeinen Desktop unter Windows speichern. Die Anwendung ist eine sehr spezielle Anwendung für genau einen speziellen PC (Gerätevorbereitung), so dass es für Nicht-Techie-Benutzer leicht sein musste, die Konfigurationsdatei zu finden und zu modifizieren. Jetzt sind wir zu einer Domain gewechselt, und weil verschiedene Leute (mit verschiedenen Accounts) die Software benutzen sollten, müssen sie an einem gemeinsamen Ort sein, der von jedem Benutzer gesehen wird. Also frag bitte nicht, warum es auf dem Desktop ist;)

Vorher habe ich nur Environment.GetFolderPath(Environment.SpecialFolder.Desktop) verwendet. Es gibt einige der allgemeinen Ordner in der SpecialFolder -Enumeration, aber der allgemeine Desktop scheint nicht da zu sein. Fehle ich etwas oder muss ich SHGetSpecialFolderPath mit CSIDL_COMMON_DESKTOPDIRECTORY aufrufen / aufrufen?

    
OregonGhost 11.08.2009, 08:48
quelle

5 Antworten

2

Ich denke, dass Sie die SHGetSpecialFolderPath API verwenden müssen, da es keinen Aufzählungswert für "CommonDesktopDirectory" gibt. Sie können den Wert von CSIDL_COMMON_DESKTOPDIRECTORY nicht explizit verwenden und ihn in Environment.SpecialFolder umwandeln, da die Methode GetFolderPath prüft, ob der Wert in der Enumeration definiert ist. Hier ist der Code der Methode GetFolderPath (von Reflector):

%Vor%

So können Sie einfach das Teil kopieren und anpassen, das Sie brauchen ...

    
Thomas Levesque 11.08.2009, 08:55
quelle
0

Zur Verdeutlichung - Unter gewöhnlichem Desktop meinen Sie C: \ Dokumente und Einstellungen \ All Users \ Desktop?

Wenn ja, ist das ein hässlicher Hack -

%Vor%     
anonymous 11.08.2009 09:01
quelle
0

Sie können Windows Script Host - WshShell.SpecialFolders

verwenden

Ссылка

    
Bogdan_Ch 11.08.2009 09:02
quelle
0

Fügen Sie zuerst einen Verweis auf "Windows Script Host Object Model" hinzu. Sie finden dies auf der Registerkarte COM des Dialogfelds "Referenzen hinzufügen".

%Vor%     
Jim 11.08.2009 09:07
quelle
0

Ein anderer Weg (ja, es ist auch hässlich und funktioniert wahrscheinlich nur unter Windows XP, nicht unter Vista) ist ein Wert aus der Registrierung zu lesen

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shellordner, allgemeiner Desktop

    
Bogdan_Ch 11.08.2009 09:11
quelle

Tags und Links