SetDefaultLayoutOrTipUserReg 函数
将指定的键盘布局或文本服务设置为用户注册表的默认输入项。
语法
BOOL CALLBACK SetDefaultLayoutOrTipUserReg(
_In_opt_ LPCWSTR pszUserReg,
_In_opt_ LPCWSTR pszSystemReg,
_In_opt_ LPCWSTR pszSoftwareReg,
_In_ LPCWSTR psz,
_In_ DWORD dwFlags
);
参数
-
pszUserReg [in,可选]
-
用户的注册表路径。 如果此参数为NULL,则使用HKEY_CURRENT_USER。
-
pszSystemReg [in,可选]
-
系统的注册表路径。 如果此参数为NULL,则使用 HKEY_LOCAL_MACHINE\System。
-
pszSoftwareReg [in,可选]
-
软件的注册表路径。 如果此参数为NULL,则使用 HKEY_LOCAL_MACHINE\Software。
-
psz [in]
-
表示键盘布局列表或文本服务配置文件列表的字符串。
-
dwFlags [in]
-
指定以下标志的位域:
注意
公共头文件中未定义以下标识符。 必须使用十六进制值或 #define 标识符。 例如,要使用 SDLOT_NOAPPLYTOCURRENTSESSION,必须在代码中包含 #define SDLOT_NOAPPLYTOCURRENTSESSION 0x00000001。
值 含义 - SDLOT_NOAPPLYTOCURRENTSESSION
- 0x00000001
将设置存储在注册表中,但不更新当前会话的运行时键盘设置。 如果在SetDefaultLayoutOrTipUserReg中设置了替代注册表路径,应设置此标志。 - SDLOT_APPLYTOCURRENTTHREAD
- 0x00000002
立即在当前线程上应用设置。
返回值
返回代码 | 说明 |
---|---|
|
此函数成功。 |
|
发生了未指定的错误。 |
注解
布局列表的字符串格式为:
<LangID 1>:<KLID 1>;[...<LangID N>:<KLID N>
文本服务配置文件列表的字符串格式为:
<LangID 1>:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx};
下面是psz参数的值示例:
"0x0407:0x00000407"
"0x0407:0x00000407;0x040C:0x0000040C"
"0x0407:0x00000407;0x0412:{A028AE76-01B1-46C2-99C4-ACD9858AE02F}{B5FE1F02-D5F2-4445-9C03-C568F23C99A1};0x040C:0x0000040C"
示例
没有可用的导入库定义此函数,因此需要使用LoadLibrary和GetProcAddress以获取指向此函数的指针。 以下示例演示如何获取指向此函数的指针。
注意
错误地使用LoadLibrary可能会加载错误的 DLL,从而影响应用程序的安全性。 有关如何使用不同版本的 Microsoft Windows 正确加载 DLL 的信息,请参阅动态链接库搜索顺序。
typedef HRESULT (
WINAPI *PTF_ SETDEFAULTLAYOUTORTIPUSERREG)( LPCWSTR pszUserReg,
LPCWSTR pszSystemReg,
LPCWSTR pszSoftwareReg,
LPCWSTR psz);
HMODULE hInputDLL = LoadLibrary(TEXT("input.dll"));
BOOL bRet = FALSE;
if(hInputDLL == NULL)
{
//Error loading module -- fail as securely as possible
}
else
{
PTF_ SETDEFAULTLAYOUTORTIPUSERREG pfnSetDefaultLayoutOrTipUserReg;
pfnSetDefaultLayoutOrTipUserReg = (PTF_ SETDEFAULTLAYOUTORTIPUSERREG)GetProcAddress(hInputDLL, "SetDefaultLayoutOrTipUserReg");
if(pfnSetDefaultLayoutOrTipUserReg)
{
bRet = (*pfnSetDefaultLayoutOrTipUserReg)( pszUserReg, pszSystemReg, pszSoftwareReg, psz);
}
FreeLibrary(hInputDLL);
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
DLL |
|