GetWindowsDirectoryW-Funktion (sysinfoapi.h)
Ruft den Pfad des Windows-Verzeichnisses ab.
Diese Funktion wird in erster Linie zur Kompatibilität mit Legacyanwendungen bereitgestellt. Neue Anwendungen sollten Code im Ordner "Programme" und beständigen Daten im Ordner "Anwendungsdaten" im Benutzerprofil speichern. Weitere Informationen finden Sie unter ShGetFolderPath.
Syntax
UINT GetWindowsDirectoryW(
[out] LPWSTR lpBuffer,
[in] UINT uSize
);
Parameter
[out] lpBuffer
Ein Zeiger auf einen Puffer, der den Pfad empfängt. Dieser Pfad endet nicht mit einem umgekehrten Schrägstrich, es sei denn, das Windows-Verzeichnis ist das Stammverzeichnis. Wenn z. B. das Windows-Verzeichnis windows auf Laufwerk C heißt, lautet der Pfad des von dieser Funktion abgerufenen Windows-Verzeichnisses "C:\Windows". Wenn das System im Stammverzeichnis von Laufwerk C installiert wurde, lautet der abgerufene Pfad "C:".
[in] uSize
Die maximale Größe des durch den parameter lpBuffer angegebenen Puffers in TCHARs. Dieser Wert sollte auf MAX_PATHfestgelegt werden.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Länge der Zeichenfolge, die in den Puffer kopiert wurde, in TCHARs, nicht einschließlich des endenden NULL-Zeichens.
Wenn die Länge größer als die Größe des Puffers ist, ist der Rückgabewert die Größe des Puffers, der zum Speichern des Pfads erforderlich ist.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Das Windows-Verzeichnis ist das Verzeichnis, in dem einige Ältere Anwendungen Initialisierungs- und Hilfedateien speichern. Neue Anwendungen sollten keine Dateien im Windows-Verzeichnis speichern; Stattdessen sollten sie systemweite Daten im Installationsverzeichnis der Anwendung und benutzerspezifische Daten im Profil des Benutzers speichern.
Wenn der Benutzer eine freigegebene Version des Systems ausführt, ist das Windows-Verzeichnis für jeden Benutzer garantiert privat.
Wenn eine Anwendung andere Dateien erstellt, die sie pro Benutzer speichern möchte, sollte sie in das verzeichnis platziert werden, das durch die HOMEPATH-Umgebungsvariable angegeben ist. Dieses Verzeichnis unterscheidet sich für jeden Benutzer, wenn dies von einem Administrator angegeben wird, über das Verwaltungstool des Benutzer-Managers. HOMEPATH gibt immer das Startverzeichnis des Benutzers an, das für jeden Benutzer garantiert privat ist, oder ein Standardverzeichnis (z. B. C:\USERS\DEFAULT), auf das der Benutzer zugriff hat.
Terminaldienste: Wenn die Anwendung in einer Terminaldienste-Umgebung ausgeführt wird, verfügt jeder Benutzer über ein privates Windows-Verzeichnis. Es gibt auch ein freigegebenes Windows-Verzeichnis für das System. Wenn es sich bei der Anwendung um Terminaldienste handelt (das IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE Flag im Bildheader festgelegt hat), gibt diese Funktion den Pfad des Windows-Systemverzeichnisses zurück, genau wie die GetSystemWindowsDirectory--Funktion. Andernfalls wird der Pfad des privaten Windows-Verzeichnisses für den Benutzer abgerufen.
Beispiele
Ein Beispiel finden Sie unter Abrufen von Systeminformationen.
Anmerkung
Der sysinfoapi.h-Header definiert GetWindowsDirectory als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | sysinfoapi.h (include Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |