dec*_*jau 5 windows winapi locale keyboard-shortcuts
Win32 函数GetKeyNameText将提供当前输入区域设置中键盘按键的名称。
来自 MSDN:
键名称根据当前安装的键盘的布局进行翻译,因此该函数可能会针对不同的输入区域设置给出不同的结果。
是否可以在短时间内强制输入区域设置?或者是否有另一种选择,GetKeyNameText总是返回英文名称?
更新:这个答案不起作用。它实际上修改了用户的键盘设置。这似乎是 Windows 版本之间的行为变化。
CString csLangId;
csLangId.Format( L"%08X", MAKELANGID( LANG_INVARIANT, SUBLANG_NEUTRAL ) );
HKL hLocale = LoadKeyboardLayout( (LPCTSTR)csLangId, KLF_ACTIVATE );
HKL hPrevious = ActivateKeyboardLayout( hLocale, KLF_SETFORPROCESS );
// Call GetKeyNameText
ActivateKeyboardLayout( hPrevious, KLF_SETFORPROCESS );
UnloadKeyboardLayout( hLocale );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1335 次 |
| 最近记录: |