GetProfileInt

【勇芳软件工作室】汉化HomePreviousNext

GetProfileInt函数从WIN.INI文件的给定部分中的指定键名称中检索整数。此函数用于与16位基于Windows的应用程序兼容。基于Win32的应用程序应该将初始化信息存储在注册表中。

UINT GetProfileInt(

LPCTSTR 【lpAppName】,//部分名称的地址
LPCTSTR 【lpKeyName】,//键名称的地址
INT 【默认】//如果找不到键名,则为默认值
); 

参数

【lpAppName】

指向一个以null结尾的字符串,指定包含键名称的部分。

【lpKeyName】

指向包含要检索其值的键名称的以null结尾的字符串。此值为字符串的形式; GetProfileInt函数将字符串转换为整数并返回整数。

【默认】

如果在初始化文件中找不到键名,则指定返回的默认值。

返回值

如果函数成功,则返回值与WIN.INI中的键名称之后的字符串的整数相等。如果函数找不到键,则返回值为默认值。如果键的值小于零,则返回值为零。

备注

If the key name consists of digits followed by characters that are not numeric, the function returns only the value of the digits. For example, the function returns 102 for the following line: 【KeyName】=102abc.

Windows NT:

对配置文件功能的调用可能会映射到注册表而不是初始化文件。当在注册表中的以下键下指定初始化文件和部分时,会发生此映射:

HKEY_LOCAL_MACHINE\软件\微软\
Windows NT\CurrentVersion\IniFileMapping

当映射操作时,GetProfileInt函数从注册表中检索信息,而不是从初始化文件中检索;存储位置的变化对功能的行为没有影响。

Win32配置文件功能(Get/WriteProfile*Get/WritePrivateProfile*)使用以下步骤来定位初始化信息:

1.在注册表中的初始化文件的名称,说myfile.ini,在IniFileMapping下:

HKEY_LOCAL_MACHINE\软件\微软\
Windows NT\CurrentVersion\IniFileMapping\myfile.ini

2.查看【lpAppName】指定的部分名称。这将是myfile.ini下的命名值,或myfile.ini的子项,否则将不存在。

3.如果由【lpAppName】指定的部分名称是myfile.ini下的命名值,则该值指定注册表中的哪个部分可以找到密钥。

4.如果由【lpAppName】指定的部分名称是myfile.ini的子项,则该子项下的命名值将指定注册表中的哪个部分的键。如果您要查找的密钥不存在作为命名值,那么将会有一个未命名的值(显示为“< No Name >”),指定注册表中的默认位置,您将在其中找到密钥。

5.如果由【lpAppName】指定的部分名称不存在作为命名值或myfile.ini下的子项,则在myfile下将显示一个未命名的值(如“< No Name >”)) .ini,它指定注册表中的默认位置,您可以在其中找到该部分的键。

6.如果没有myfile.ini的子项,或者没有条目名称的条目,那么在磁盘上查找实际的myfile.ini并读取其内容。

当查看注册表中指定其他注册表位置的值时,有几个前缀可以更改ini文件映射的行为:

! - 这个字符强制所有的写入都到磁盘上的注册表和.INI文件。

# - 当新用户在安装后首次登录时,此字符会使注册表值设置为Windows 3.1 .INI文件中的值。

@ - 如果在注册表中找不到所请求的数据,则此字符可防止任何读取到磁盘上的.INI文件。

USR: - 此前缀代表HKEY_CURRENT_USER,前缀后面的文本与该键相关。

SYS: - 此前缀代表HKEY_LOCAL_MACHINE \\ SOFTWARE,前缀后的文本与该键相关。

也可以看看

GetPrivateProfileInt, WriteProfileString