Win32 Ime API:


ImmGetContext: 获取指定窗口的当前的输入上下文,然后再尝试访问上下文中的信息。应用程序应该定期使用这个功能获取窗口的当前的输入上下文。若hWnd参数为零,将返回桌面当前的输入上下文。

HIMC ImmGetContext( HWND hWnd );

GetKeyboardLayout:该函数可以获得指定线程的活动键盘布局句柄。若idThread参数为零,将返回活动线程的键盘布局句柄。
HKL GetKeyboardLayout( DWORD idThread );
返回值:返回值为指定线程的键盘布局句柄。返回值的低位字包含了输入语言的语言标识符,高位字包含了键盘物理布局的句柄。
 

GetKeyboardLayoutList:获得系统适用的所有键盘布局的一个列表
UINT GetKeyboardLayoutList( int nBuff,HKL FAR *IpList );

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 );

 

Win32 Ime的更多相关文章

  1. Worm.Win32.DownLoader.ns病毒主进程新式输入法注入分析(IME Inject)

    1.病毒会在system32目录生成一个以tmp结尾的随机数命名的文件. 2.然后挂钩HOOK本进程空间的imm32.dll导出的ImmLoadLayout函数和ntdll.dll导出的ZwQuery ...

  2. IME 编程相关

    以下内容摘自http://msdn.microsoft.com/zh-cn/goglobal/bb688135.aspx 在 Win32 中处理输入语言的方法 Microsoft Developer ...

  3. IME输入法编程心得

    原文:IME输入法编程心得 posted @ 2012-11-30 00:42 from [FreedomShe] 自然语言处理的输入法作业成品没有做出来,但不想再在蛋疼的Win32上面耗费时间了,整 ...

  4. WPF 自定义文本框输入法 IME 跟随光标

    本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标 本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴.在开始之前,期望了解了文本库开发的基础知识 本文实现的 ...

  5. C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper

    前言 在开发应用程序时,通常只让程序运行一个实例.所以,就要判断程序是否已经运行. 下面是我自己在项目中使用到,封装好的帮助类.有 普通的 C# 应用程序 和 Windows CE 和 Windows ...

  6. java.lang.UnsatisfiedLinkError: %1 不是有效的 Win32 应用程序。

    JNA 调用 dll 库时,保错: ///////////////// 通过 JNA 引入 DLL 库 //////////// /** * ID_FprCap.dll 负责指纹的采集, 指纹仪的初始 ...

  7. 初次认识 C# win32 api

    第一次接触win32api,刚开始的时候有点迷迷糊糊的. Windows API 就是windows应用程序接口. win api向上就是windows应用程序,向下就是windows操作系统核心. ...

  8. CTRL-Space always toggles Chinese IME (Windows 7、10)

    一.window占用了ctrl+空格的快捷键,影响开发工具的只能提示的使用. 二.解决方式: Go to Start > Type in regedit and start it (打开运行输入 ...

  9. [老文章搬家] [翻译] 深入解析win32 crt 调试堆

    09 年翻译的东西. 原文见:  http://www.nobugs.org/developer/win32/debug_crt_heap.html 在DeviceStudio的Debug编译模式下, ...

随机推荐

  1. Echarts 南海诸岛简图显示位置调整

        最近需要echart同时显示海南岛和南海诸岛,开始想寻找南海诸岛的数据,经过查找,这种简图数据是没有的(china.js地图数据一一找过了),下图是echarts的一些示例,没有满足我们的要求 ...

  2. scp传输提示bash: scp: command not found

    其中一端缺少scp相关的包源[oracle@rac1 dump_dir]$ scp /mnt/dump_dir/expdp_orders_2tabs2* 192.168.X.247:/home/ora ...

  3. July 02nd. 2018, Week 27th. Monday

    Bad times make a good man. 艰难困苦出能人. Bad times make a good man, and hard times create strong men, but ...

  4. Linux 桌面玩家指南:13. 使用 Git 及其和 Eclipse 的集成

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  5. javascript中apply、call和bind的区别及方法详解

    文章目录   apply.call apply.call 区别 apply.call实例 数组之间追加 获取数组中的最大值和最小值 验证是否是数组(前提是toString()方法没有被重写过) 类(伪 ...

  6. spark 机器学习基础 数据类型

    spark的机器学习库,包含常见的学习算法和工具如分类.回归.聚类.协同过滤.降维等使用算法时都需要指定相应的数据集,下面为大家介绍常用的spark ml 数据类型.1.本地向量(Local Vect ...

  7. Node.js微服务实践(一)

    什么是微服务 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任务.在所有情况下 ...

  8. NotificationSetUtilDemo【判断APP通知栏权限是否开启,以及如何跳转到应用程序设置界面】

    前言 当APP有推送功能时,需要判断当前app在手机中是否开启了允许消息推送,否则即使添加了推送代码仍然收不到通知. 效果图 oppo上的效果: 使用步骤 一.项目组织结构图 注意事项: 1.  导入 ...

  9. 小议 localStorage

    前言 什么是 localStorage? 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条co ...

  10. Entity Framework 查漏补缺 (二)

    数据加载 如下这样的一个lamda查询语句,不会立马去查询数据库,只有当需要用时去调用(如取某行,取某个字段.聚合),才会去操作数据库,EF中本身的查询方法返回的都是IQueryable接口. 链接: ...