WritePrivateProfileSectionA-Funktion (winbase.h)

Ersetzt die Schlüssel und Werte für den angegebenen Abschnitt in einer Initialisierungsdatei.

Hinweis Diese Funktion wird nur zur Kompatibilität mit 16-Bit-Versionen von Windows bereitgestellt. Anwendungen sollten Initialisierungsinformationen in der Registrierung speichern.
 

Syntax

BOOL WritePrivateProfileSectionA(
  [in] LPCSTR lpAppName,
  [in] LPCSTR lpString,
  [in] LPCSTR lpFileName
);

Parameter

[in] lpAppName

Der Name des Abschnitts, in den Daten geschrieben werden. Dieser Abschnittsname ist in der Regel der Name der aufrufenden Anwendung.

[in] lpString

Die neuen Schlüsselnamen und zugeordneten Werte, die in den benannten Abschnitt geschrieben werden sollen. Diese Zeichenfolge ist auf 65.535 Bytes beschränkt.

[in] lpFileName

Der Name der Initialisierungsdatei. Wenn dieser Parameter keinen vollständigen Pfad für die Datei enthält, durchsucht die Funktion das Windows-Verzeichnis nach der Datei. Wenn die Datei nicht vorhanden ist und lpFileName keinen vollständigen Pfad enthält, erstellt die Funktion die Datei im Windows-Verzeichnis.

Wenn die Datei vorhanden ist und mit Unicode-Zeichen erstellt wurde, schreibt die Funktion Unicode-Zeichen in die Datei. Andernfalls erstellt die Funktion eine Datei mit ANSI-Zeichen.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

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

Hinweise

Die Daten im Puffer, auf die der lpString-Parameter verweist, bestehen aus mindestens einer NULL-Zeichenfolge, gefolgt von einem abschließenden NULL-Zeichen . Jede Zeichenfolge hat die folgende Form:

Schlüssel=Schnur

Bei der WritePrivateProfileSection-Funktion wird die Groß-/Kleinschreibung nicht beachtet. Die Zeichenfolge, auf die der parameter lpAppName verweist, kann eine Kombination aus Groß- und Kleinbuchstaben sein.

Wenn kein Abschnittsname mit der Zeichenfolge übereinstimmt, auf die der parameter lpAppName verweist, erstellt WritePrivateProfileSection den Abschnitt am Ende der angegebenen Initialisierungsdatei und initialisiert den neuen Abschnitt mit den angegebenen Schlüsselnamen- und Wertpaaren.

WritePrivateProfileSection löscht die vorhandenen Schlüssel und Werte für den benannten Abschnitt und fügt die Schlüsselnamen und Werte in den Puffer ein, auf den der lpString-Parameter verweist. Die Funktion versucht nicht, alte und neue Schlüsselnamen zu korrelieren. wenn die neuen Namen in einer anderen Reihenfolge als die alten Namen angezeigt werden, werden alle Kommentare, die bereits vorhandenen Schlüsseln und Werten in der Initialisierungsdatei zugeordnet sind, wahrscheinlich falschen Schlüsseln und Werten zugeordnet.

Dieser Vorgang ist atomar; Es sind keine Vorgänge zulässig, die aus der angegebenen Initialisierungsdatei lesen oder in diese schreiben, während die Informationen geschrieben werden.

Das System behält eine zwischengespeicherte Version der neuesten Registrierungsdateizuordnung bei, um die Leistung zu verbessern. Wenn alle Parameter NULL sind, leert die Funktion den Cache. Während das System die zwischengespeicherte Version der Datei bearbeitet, verwenden Prozesse, die die Datei selbst bearbeiten, die ursprüngliche Datei, bis der Cache gelöscht wurde.

Das System ordnet die meisten .ini Dateiverweise der Registrierung zu, wobei die unter dem folgenden Registrierungsschlüssel definierte Zuordnung verwendet wird:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows NT
            CurrentVersion
               IniFileMapping

Diese Zuordnung ist wahrscheinlich, wenn eine Anwendung Systemkomponenteninitialisierungsdateien wie Control.ini, System.ini und Winfile.ini ändert. In diesem Fall schreibt die Funktion Informationen in die Registrierung, nicht in die Initialisierungsdatei. die Änderung des Speicherorts hat keine Auswirkungen auf das Verhalten der Funktion.

Die Profilfunktionen verwenden die folgenden Schritte, um Initialisierungsinformationen zu suchen:

  1. Suchen Sie in der Registrierung nach dem Namen der Initialisierungsdatei unter dem Schlüssel IniFileMapping .
  2. Suchen Sie nach dem von lpAppName angegebenen Abschnittsnamen. Dies ist ein benannter Wert unter dem Schlüssel, der den Namen der Initialisierungsdatei enthält, oder ein Unterschlüssel mit diesem Namen, oder der Name ist weder als Wert noch als Unterschlüssel vorhanden.
  3. Wenn der von lpAppName angegebene Abschnittsname ein benannter Wert ist, gibt dieser Wert an, wo sie in der Registrierung die Schlüssel für den Abschnitt finden.
  4. Wenn der von lpAppName angegebene Abschnittsname ein Unterschlüssel ist, geben benannte Werte unter diesem Unterschlüssel an, wo sie in der Registrierung die Schlüssel für den Abschnitt finden. Wenn der gesuchte Schlüssel nicht als benannter Wert vorhanden ist, gibt es einen unbenannten Wert (als <Kein Name>), der den Standardspeicherort in der Registrierung angibt, in der Sie den Schlüssel finden.
  5. Wenn der von lpAppName angegebene Abschnittsname nicht als benannter Wert oder als Unterschlüssel vorhanden ist, gibt es einen unbenannten Wert (als No Name>)< an, der den Standardspeicherort in der Registrierung angibt, an dem Sie die Schlüssel für den Abschnitt finden.
  6. Wenn kein Unterschlüssel oder Eintrag für den Abschnittsnamen vorhanden ist, suchen Sie nach der tatsächlichen Initialisierungsdatei auf dem Datenträger, und lesen Sie den Inhalt.
Beim Betrachten von Werten in der Registrierung, die andere Registrierungsspeicherorte angeben, gibt es mehrere Präfixe, die das Verhalten der .ini Dateizuordnung ändern:
  • ! – Dieses Zeichen erzwingt, dass alle Schreibvorgänge sowohl zur Registrierung als auch zur .ini Datei auf dem Datenträger gelangen.
  • # : Dieses Zeichen bewirkt, dass der Registrierungswert auf den Wert in der Windows 3.1-.ini-Datei festgelegt wird, wenn sich ein neuer Benutzer nach dem Setup zum ersten Mal anmeldet.
  • @ : Dieses Zeichen verhindert, dass Lesevorgänge zur .ini-Datei auf dem Datenträger wechseln, wenn die angeforderten Daten nicht in der Registrierung gefunden werden.
  • USR: Dieses Präfix steht für HKEY_CURRENT_USER, und der Text nach dem Präfix ist relativ zu diesem Schlüssel.
  • SYS: Dieses Präfix steht für HKEY_LOCAL_MACHINE\SOFTWARE, und der Text nach dem Präfix ist relativ zu diesem Schlüssel.

Hinweis

Der winbase.h-Header definiert WritePrivateProfileSection 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 winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetPrivateProfileSection

RegCreateKeyEx

RegSetValueEx

WriteProfileSection