GetWindowsDirectoryA-Funktion (sysinfoapi.h)
Ruft den Pfad des Windows-Verzeichnisses ab.
Diese Funktion wird hauptsächlich aus Gründen der Kompatibilität mit Legacyanwendungen bereitgestellt. Neue Anwendungen sollten Code im Ordner Programme und persistente Daten im Ordner Anwendungsdaten im Benutzerprofil 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 umgekehrten Schrägstrich, es sei denn, das Windows-Verzeichnis ist das Stammverzeichnis. Wenn das Windows-Verzeichnis beispielsweise 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 Puffers, die vom lpBuffer-Parameter in TCHARs angegeben wird. Dieser Wert sollte auf MAX_PATH festgelegt werden.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Länge der in den Puffer kopierten Zeichenfolge in TCHARs, ohne das beendende NULL-Zeichen.
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 fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Das Windows-Verzeichnis ist das Verzeichnis, in dem einige Legacyanwendungen 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 Benutzerprofil 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 Benutzerbasis speichern möchte, sollte sie sie in dem Verzeichnis platzieren, das von der HOMEPATH-Umgebungsvariablen angegeben ist. Dieses Verzeichnis unterscheidet sich für jeden Benutzer, falls dies von einem Administrator angegeben wird, über das Benutzer-Manager-Verwaltungstool. HOMEPATH gibt immer entweder das Basisverzeichnis des Benutzers an, das für jeden Benutzer garantiert privat ist, oder ein Standardverzeichnis (z. B. C:\USERS\DEFAULT), in dem der Benutzer über allen Zugriff verfügt.
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 Terminaldienste-fähig ist (das flag IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE im Imageheader festgelegt ist), 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.
Hinweis
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 nicht codierungsneutralem Code 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 |
---|---|
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 (einschließlich Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |