b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

全局钩子_全局钩子c语言_解除全局钩子

电脑杂谈  发布时间:2017-01-09 22:00:59  来源:网络整理

全局钩子c语言_全局钩子_解除全局钩子

这个问题搜索一下,有不少帖子,但都没有真正的结论。

我也试验了好久,觉得眼看就要成功了,拿出来跟大家讨论讨论。

首先,要把POST和SENDMESSAGE的函数都勾进去,即sendmessageproc,getmessageproc因为WM_CHAR用于截获英文字符,用GETMESSAGE,但WM_IME开头的

一系列函数必须用SENDMESSAGE。截获汉字用WM_IME_CHAR,但不够!IE,WORD等都无法截获。

……我就做到这里,快考试了,比较忙,因此这个思路还没有调通。大家试试看吧!有好消息分享出来

另外一个思路是APIHOOK注入IME输入法,我很不赞同这种方法,

毕竟APIHOOK很,把所有进程都FUCK了。:)notice:表示关注或者转贴搜索帖子的不给分

不错,用WH_CALLWNDPROC的钩子截获WM_IME_COMPOSITION消息if(cs->message==WM_IME_COMPOSITION)//截获中文输入

{

if(cs->lParam&GCS_RESULTSTR)

{

HIMChImc;

DWORDdwSize;

char*Buf;hImc=ImmGetContext(GetActiveWindow());

dwSize=ImmGetCompositionString(hImc,GCS_RESULTSTR,NULL,0);

Buf=newchar[dwSize+1];ImmGetCompositionString(hImc,GCS_RESULTSTR,(LPVOID)Buf,dwSize);Buf[dwSize]='\0';

ImmReleaseContext(GetActiveWindow(),hImc);Form1->Memo1->Lines->Add(">:"+AnsiString(Buf));

deleteBuf;

}

}

我试了一下:luckypopy(菜鸟)的方法,截获了双份,就是说,在我使用微软拼音打出一个句子后,这个消息出现了两次。

还有问一个Dll的问题;):

我要在Dll中截获,并且得到字符串,那么我应该怎样传给应用程序呢?肯定不能用指针,我试了使用GlobalAlloc()发现不行,(我设的是Moveable的)

请大家到下面这个连接去继续讨论。谢谢

?id=1403176

通过我连续3天的奋斗,我明白一个道理。

Windows的IME消息很多,很多!

而各输入法处理这些消息的方法不同,表现出来的就是微软拼音2。0和3。0的一个显著不同就是空格的作用,3。0可以用空格代替回车。

而那些全拼,紫光,智能ABC,更是乱七八糟,一塌糊涂。

开发输入法很难,但是做个输入法的钩子更难。只能针对一个特定的输入法才行!!而这样做,似乎意义不大了。难道针对每一个市面上的输入法都做一个。或者自己做个通用的,可以设置各种参数的钩子!看来还是要先做一个输入法才行!

光截IME消息是不够的.有时候一些IME程序不是很标准.而且一两个IME消息也不行.

我看还是APIHOOK机制好点.在类似SetWindowText,TextOut....函数,得到汉字消息,然后再搞个管理模块,把得到的汉字消息发送此处.不知道我的想法,可行否

我奋斗的结果,就是基本上各种输入法在XP下没问题了,

毕竟应用程序和输入法之间的接口必须固定,而我们截获的

正是这个接口可是在特殊情况下,比如输入法不停切换时就会发生丢字甚至乱码

相信是可以完善的

看看有的跟贴,好像有人还不懂什么是全局键盘钩子


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25252-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 罗岱罡
      罗岱罡

      我也会多多的来关注这个变化的

      • 侯秋雲
        侯秋雲

        不想你变的憔悴”感触良多

    • 王飞飞
      王飞飞

      如果他能接受这个称呼

    • 赵佳玲
      赵佳玲

      期待小王子

    热点图片
    拼命载入中...