Функция WriteProfileStringW (winbase.h)
Копирует строку в указанный раздел файла Win.ini. Если Win.ini использует символы Юникода, функция записывает символы Юникода в файл. В противном случае функция записывает символы ANSI.
Синтаксис
BOOL WriteProfileStringW(
[in] LPCWSTR lpAppName,
[in] LPCWSTR lpKeyName,
[in] LPCWSTR lpString
);
Параметры
[in] lpAppName
Раздел, в который необходимо скопировать строку. Если раздел не существует, он создается. В имени раздела регистр не учитывается; Строка может быть любым сочетанием прописных и строчных букв.
[in] lpKeyName
Ключ, связанный со строкой. Если ключ не существует в указанном разделе, он создается. Если этот параметр имеет значение NULL, весь раздел, включая все записи в разделе, удаляется.
[in] lpString
Строка, завершающаяся нулевым значением, для записи в файл. Если этот параметр имеет значение NULL, ключ, на который указывает параметр lpKeyName , удаляется.
Возвращаемое значение
Если функция успешно копирует строку в файл Win.ini, возвращаемое значение не равно нулю.
Если функция завершается сбоем или она сбрасывает кэшированную версию Win.ini, возвращаемое значение равно нулю. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Раздел в файле Win.ini должен иметь следующую форму: строка ключа=.
Система сохраняет кэшированную версию последнего сопоставления файлов реестра для повышения производительности. Если все параметры имеют значение NULL, функция очищает кэш. Пока система редактирует кэшированную версию файла, процессы, которые редактируют сам файл, будут использовать исходный файл до тех пор, пока кэш не будет очищен.
Система сопоставляет большинство .ini ссылок на файлы с реестром, используя сопоставление, определенное в следующем разделе реестра:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion IniFileMapping
При сопоставлении операции функция WriteProfileString записывает сведения в реестр, а не в файл инициализации; Изменение расположения хранилища не влияет на поведение функции.
Функции профиля используют следующие действия для поиска сведений об инициализации.
- Найдите в реестре имя файла инициализации в разделе IniFileMapping .
- Найдите имя раздела, указанное в параметре lpAppName. Это будет именованное значение в ключе, которое имеет имя файла инициализации, или подраздел с этим именем, или имя не будет существовать в качестве значения или подраздела.
- Если имя раздела, указанное в параметре lpAppName , является именованным значением, то это значение указывает, где в реестре будут находиться разделы для раздела.
- Если имя раздела, указанное в параметре lpAppName , является подразделом, то именованные значения под этим подразделом указывают, где в реестре будут находиться ключи для раздела. Если ключ, который вы ищете, не существует как именованное значение, то будет неименованное значение (отображается как <Без имени>), указывающее расположение по умолчанию в реестре, где будет находиться ключ.
- Если имя раздела, указанное в параметре lpAppName , не существует в качестве именованного значения или подраздела, будет указано неименованное значение (без <имени>), указывающее расположение по умолчанию в реестре, где будут находиться ключи для раздела.
- Если для имени раздела нет подраздела или записи, найдите фактический файл инициализации на диске и считайте его содержимое.
- ! — этот символ заставляет все операции записи идти как в реестр, так и в файл .ini на диске.
- # — этот символ определяет значение реестра в файле .ini Windows 3.1 при первом входе нового пользователя после установки.
- @ — этот символ предотвращает любые операции чтения в файл .ini на диске, если запрошенные данные не найдены в реестре.
- USR: этот префикс означает HKEY_CURRENT_USER, а текст после префикса находится относительно этого ключа.
- SYS: этот префикс означает HKEY_LOCAL_MACHINE\SOFTWARE, а текст после префикса находится относительно этого ключа.
Примечание
Заголовок winbase.h определяет WriteProfileString в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по