GetWindowsDirectoryA-Funktion (sysinfoapi.h)

Ruft den Pfad des Windows-Verzeichnisses ab.

Diese Funktion wird in erster Linie für die Kompatibilität mit Legacyanwendungen bereitgestellt. Neue Anwendungen sollten Code im Ordner "Programmdateien" und "Beständige Daten" im Ordner "Anwendungsdaten" im Profil des Benutzers speichern. Weitere Informationen finden Sie unter ShGetFolderPath.

Syntax

UINT GetWindowsDirectoryA(
  [out] LPSTR lpBuffer,
  [in]  UINT  uSize
);

Parameter

[out] lpBuffer

Ein Zeiger auf einen Puffer, der den Pfad empfängt. Dieser Pfad endet nicht mit einem Backslash, es sei denn, das Windows-Verzeichnis ist das Stammverzeichnis. Wenn z. B. das Windows-Verzeichnis auf Laufwerk C benannt wird, ist der Pfad des von dieser Funktion abgerufenen Windows-Verzeichnisses C:\Windows. Wenn das System im Stammverzeichnis des Laufwerks C installiert wurde, lautet der abgerufene Pfad C:.

[in] uSize

Die maximale Größe des vom lpBuffer-Parameter angegebenen Puffers in TCHARs. Dieser Wert sollte auf MAX_PATH festgelegt 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 Nullzeichens.

Wenn die Länge größer als die Größe des Puffers ist, ist der Rückgabewert die Größe des Puffers, der zum Halten des Pfads erforderlich ist.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Bemerkungen

Das Windows-Verzeichnis ist das Verzeichnis, in dem einige Legacyanwendungen Initialisierung 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 auf einer Benutzerbasis speichern möchte, sollte sie in das verzeichnis platziert werden, das von der 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 entweder das Startverzeichnis des Benutzers an, das für jeden Benutzer sicher privat sein soll, 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 die Anwendung Terminal-Services-aware ist (hat das im Bildkopf festgelegte IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE Flag), gibt diese Funktion den Pfad des System-Windows-Verzeichnisses zurück, genauso wie die Funktion GetSystemWindowsDirectory . Andernfalls ruft er den Pfad des privaten Windows-Verzeichnisses für den Benutzer ab.

Beispiele

Ein Beispiel finden Sie unter Abrufen von Systeminformationen.

Hinweis

Der sysinfoapi.h-Header definiert GetWindowsDirectory als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstanten automatisch auswählt. Das Mischen der Verwendung des Codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann dazu führen, dass keine Übereinstimmungen auftreten, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile sysinfoapi.h (enthalten Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetCurrentDirectory

GetSystemDirectory

GetSystemWindowsDirectory

Systeminformationsfunktionen