Win32 Ime API:
ImmGetContext: 获取指定窗口的当前的输入上下文,然后再尝试访问上下文中的信息。应用程序应该定期使用这个功能获取窗口的当前的输入上下文。若hWnd参数为零,将返回桌面当前的输入上下文。
HIMC ImmGetContext( HWND hWnd );
GetKeyboardLayout:该函数可以获得指定线程的活动键盘布局句柄。若idThread参数为零,将返回活动线程的键盘布局句柄。
HKL GetKeyboardLayout( DWORD idThread );
返回值:返回值为指定线程的键盘布局句柄。返回值的低位字包含了输入语言的语言标识符,高位字包含了键盘物理布局的句柄。
GetKeyboardLayoutList:获得系统适用的所有键盘布局的一个列表
UINT GetKeyboardLayoutList( int nBuff,HKL FAR *IpList );
GetKeyboardLayoutName:检索系统的活动输入区域设置标识符(以前称为键盘布局)的名称。
GetKeyboardLayoutName:检索系统的活动输入区域设置标识符(以前称为键盘布局)的名称。
BOOL GetKeyboardLayoutNameW( LPWSTR pwszKLID );
LoadKeyboardLayoutA:该函数给系统中装入一种新的键盘布局,可以同时装入几种不同的键盘布局,任一时刻仅有一个进程是活动的,装入多个键盘布局使得在多种布局间快速切换。
HKL LoadKeyboardLayoutA( LPCSTR pwszKLID, UINT Flags );
ActivateKeyboardLayout:为调用线程或当前进程设置输入区域设置标识符(以前称为键盘布局句柄)。输入语言环境标识符指定语言环境以及键盘的物理布局。
HKL ActivateKeyboardLayout( HKL hkl, UINT Flags );
GetKeyboardState 取得键盘上每个虚拟键当前的状态
GetKeyboardType 了解与正在使用的键盘有关的信息
GetKeyNameText 在给出扫描码的前提下,判断键名
GetWindowLong:获取指定窗口的有关信息,也可用于获取窗口内存中指定偏移的32位度整型值。要编写与32位和64位版本的Windows兼容的代码,请使用GetWindowLongPtr。在编译32位Windows时,GetWindowLongPtr被定义为对GetWindowLong函数的调用。
LONG GetWindowLong( HWND hWnd, int nIndex );
GetWindowLongPtr:获取指定窗口的有关信息,也可用于获取窗口内存中指定偏移的32位度整型值。
LONG_PTR GetWindowLongPtr( HWND hWnd, int nIndex );
SetWindowLong:该函数用来改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。此函数已被SetWindowLongPtr函数取代。要编写与32位和64位版本的Windows兼容的代码,请使用SetWindowLongPtr函数。
LONG SetWindowLong( HWND hWnd, int nIndex, LONG dwNewLong );
CallWindowProc:将消息信息传递给指定的窗口过程。
LRESULT CallWindowProcA( WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
致读者:本人自学编程,知识薄弱,实践经验不够,博客文章难免有错误之处,希望读者能积极指正,感激不尽。
若您有更精妙的解决方案或者对文中有疑问,欢迎留言或联系我讨论问题。