[Win][C]屏幕取词原理技术贴汇总 - 亦东讲座

博客首页 » WinC屏幕取词原理技术贴汇总 - 亦东讲座

发布于 07 Aug 2015 15:37
标签 blog
屏幕取词技术系列讲座(一) 亦东

【转载】金山词霸”屏幕取词技术揭密(讨论稿)

分类: c/c++ 2007-03-14 11:40 2114人阅读 评论(0) 收藏 举报
金山windowsapiwinapihookvc++
目录(?)[+]
http://blog.joycode.com/yaodong/articles/25506.aspx

“金山词霸”屏幕取词技术揭密(讨论稿)
?
主题  屏幕取词技术系列讲座(一)
作者   亦东
很多人对这个问题感兴趣。
原因是这项技术让人感觉很神奇,也很有商业价值。
现在词典市场金山词霸占了绝对优势,所以再做字典也没什么前途了。我就是这么认为的,所以我虽然掌握了这项技术,却没去做字典软件。只做了一个和词霸相似的软件自己用,本来想拿出来做共享软件,但我的词库是“偷”来的,而且词汇不多,所以也就算了,词库太小,只能取词有什么用呢?而且词霸有共享版的。
但既然很多人想了解这项技术,我也不会保留。我准备分多次讲述这项技术的所有细节。
大约每周一两次。想知道的人就常常来看看吧!
一.基础知识
首先想编这种程序需要一些基础知识。
会用Vc++,包括16/32位。
精通Windows API特别是GDI,KERNEL部分。
懂汇编语言,会用softice调试程序,因为这种程序最好用softice调试。
二.基本原理
在Window 3.x时代,windows系统提供的字符输出函数只有很少的几个。
TextOut
ExtTextOut
DrawText
……
其中DrawText最终是用ExtTextOut实现的。
所以Windows的所有字符输出都是由调用TextOut和ExtTextOut实现的。因此,如果你可以修改这两个函数的入口,让程序先调用你自己的一个函数再调用系统的字符输出,你就可以得到Windows所有输出的字符了。
到了Windows95时代,原理基本没变,但是95比3.x要复杂。开始的时候,一些在windows3.x下编写的取词软件仍然可以是使用。但是后来出了个IE4,结果很多词典软件就因为不支持IE4而被淘汰了,但同时也给一些软件创造了机会,如金山词霸。其实IE4的问题并不复杂,只不过它的输出的是unicode字符,是用TextOutW和ExtTextOutW输出的。知道了这一点,只要也截取就可以了。不过实现方法复杂一点,以后会有详细讲解。现在又出了个IE5,结果词霸也不好用了,微软真是#^@#$%$*&^&#@#@……….
我研究后找到了一种解决办法,但还有些问题,有时会取错,正在继续研究,希望大家共同探讨。
另外还有WindowsNT,原理也是一样,只是实现方法和95下完全不同。
三.技术要点
要实现取词,主要要解决以下技术问题。
1.截取API入口,获得API的参数。
2.安全地潜入Windows内部,良好地兼容Windows的各个版本
3.计算鼠标所在的单词和字母。
4.如果你在Window95下,做32位程序,还涉及Windows32/16混合编程的技术。
今天先到这里吧!最好准备一份softice for 95/98和金山词霸,让我们先来分析一下别人是怎么做的。
欢迎与我联系
E-Mail:ten.361|gnodeey#ten.361|gnodeey
主题  屏幕取词技术系列讲座(二)
作者   亦东
很抱歉让大家久等了!
我看了一些人的回帖,发现很多人对取词的原理还是不太清楚。
首先我来解释一下hook问题。词霸中的确用到了hook,而且他用了两种hook其中一种是Windows标准hook,通过SetWindowHook安装一个回调函数,它安装了一个鼠标hook,是为了可以及时响应鼠标的消息用的和取词没太大关系。
另一种钩子是API钩子,这才是取词的核心技术所在。他在TextOut等函数的开头写了一个jmp语句,跳转到自己的代码里。
你用softice看不到这个跳转语句是因为它只在取词的一瞬间才存在,平时是没有的。
你可以在TextOut开头设一个读写断点
bpm textout
再取词,就会找到词霸用来写钩子的代码了。
/**
所以我在次强调,想学这种技术一定要懂汇编语言和熟练使用softice.
**/
至于从cjktl95中dump出来的未公开函数是和Windows32/16混合编程有关的,以后我会提到他们。
我先来讲述取词的过程,
0 判断鼠标是否在一个地方停留了一段时间
1 取得鼠标当前位置
2 以鼠标位置为中心生成一个矩形
3 挂上API钩子
4 让这个矩形产生重画消息
5 在钩子里等输出字符
6 计算鼠标在哪个单词上面,把这个单词保存下来
7 如果得到单词则摘掉API钩子,在一段时间后,无论是否得到单词都摘掉API钩子
8 用单词查词库,显示解释框。
很多步骤实现起来都有一些难度,所以在中国可以做一个完善的取词词典的人屈指可数。
其中0,1,2,7,8比较简单就不提了。
先说如何挂钩子:
所谓钩子其实就是在WindowsAPI入口写一个JMP XXXX:XXXX语句,跳转到自己的代码里。
步骤如下:
1.取得Windows API入口,用GetProcAddress实现
2.保存API入口的前五个字节,因为JMP是0xEA,地址是4个字节
3.写入跳转语句
这步最复杂
Windows的代码段本来是不可以写的,但是Microsoft给自己留了个后门。
有一个未公开函数是AllocCsToDsAlias,
UINT WINAPI ALLOCCSTODSALIAS(UINT);
你可以取到这个函数的入口,把API的代码段的选择符(要是不知道什么是选择符,就先去学学保护模式编程吧)传给他,他会返回一个可写的数据段选择符。这个选择符用完要释放的。用新选择符和API入口的偏移量合成一个指针就可以写windows的代码段了。
这就是取词技术的最核心的东东,不止取词,连外挂中文平台全屏汉化都是使用的这种技术。现在知道为什么这么简单的几句话却很少知道了吧?因为太多的产品使用他,太多的公司靠他赚钱了。
这些公司和产品有:中文之星,四通利方,南极星,金山词霸,实达铭泰的东方快车,roboword,译典通,即时汉化专家等等等等。。。。还有至少20多家小公司。他们的具体实现虽然不同,但大致原理是相同的。
我这些都是随手写的,也没有提纲之类的东西,以后如果有机会我会整理一下,大家先凑合着看吧!xixi…
?
主题  关于屏幕取词的讨论(三)
作者   亦东

让大家久等,很抱歉,前些时候工作忙硬盘又坏了,太不幸了。
这回来点真格的。
咱们以截取TextOut为例。
下面是代码:
截取TextOut
typedef UINT (WINAPI* ALLOCCSTODSALIAS)(UINT);
ALLOCCSTODSALIAS AllocCsToDsAlias;
BYTE NewValue[5];
保存新的入口代码
BYTE OldValue[5];API原来的入口代码
unsigned char * Address=NULL;
可写的API入口地址
UINT DsSelector=NULL;指向API入口的可写的选择符
WORD OffSetEntry=NULL;
API的偏移量
BOOL bHookAlready = FALSE; 是否挂钩子的标志
BOOL InitHook()
{
HMODULE hKernel,hGdi;
hKernel = GetModuleHandle("Kernel");
if(hKernel==NULL)
return FALSE;
AllocCsToDsAlias = (ALLOCCSTODSALIAS)GetProcAddress(hKernel,"AllocCsToDsAlias");
这是未公开的API所以要这样取地址
if(AllocCsToDsAlias==NULL)
return FALSE;
hGdi = GetModuleHandle("Gdi");
if(hmGdi==NULL)
return FALSE;
FARPROC Entry = GetProcAddress(hGdi,"TextOut");
if(Entry==NULL)
return FALSE;
OffSetEntry = (WORD)(FP_OFF(Entry));取得API代码段的选择符
DsSelector = AllocCsToDsAlias(FP_SEG(Entry));
分配一个等同的可写的选择符
Address = (unsigned char*)MK_FP(DsSelector,OffSetEntry);合成地址
NewValue[0]=0xEA;
*((DWORD*)(NewValue+1)) = (DWORD)MyTextOut;
OldValue[0]=Address[0];
*((DWORD*)(OldValue+1)) = *((DWORD*)(Address+1));
}
BOOL ClearHook()
{
if(bHookAlready)
HookOff();
FreeSelector(DsSelector);
}
BOOL HookOn()
{
if(!bHookAlready){
for(int i=0;i<5;i++){
Address[i]=NewValue[i];
}
bHookAlready=TRUE;
}
}
BOOL HookOff()
{
if(bHookAlready){
for(int i=0;i<5;i++){
Address[i]=OldValue[i];
}
bHookAlready=FALSE;
}
}
钩子函数,一定要和API有相同的参数和声明
BOOL WINAPI MyTextOut(HDC hdc,int nXStart,int nYStart,LPCSTR lpszString,UINT cbString)
{
BOOL ret;
HookOff();
ret = TextOut(hdc,nXStart,nYStart,lpszString,cbString);//调原来的TextOut
HookOn();
return ret;
}
上面的代码是一个最简单的挂API钩子的例子,我要提醒大家的是,这段代码是我凭记忆写的,我以前的代码丢了,我没有编译测试过
因为我没有VC++1.52.所以代码可能会有错。
建议使用Borland c++,按16位编译。
如果用VC++1.52,则要改个选项
在VC++1.52的Option里,有个内存模式的设置,选大模式,和"DS!=SS DS Load on Function entry.",切记,否则会系统崩溃。
发表于 2004年6月23日 19:11 - (阅读:35082;评论:90)

评论

nice

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-6-24 15:12 rivershan

你就是亦东啊。。。。
差不多这个好像就是最古老的介绍取词的文章了~
老兄多大年龄了?

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-6-24 15:17 yaodong

唉~~,已经而立之年了

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-6-25 15:18 阿赖.COM

厉害!

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-6-25 23:56 ceocio

强啊

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-7-1 10:05 kcahcn

我看过很多次。不错。
你应该是那种喜欢挑战的人吧?
给你一个我觉得比较麻烦一点的东西
屏幕取词对LTR语言不怎么麻烦但是对RTL(像Arabic,Hebro…)就不一样了。有很多问题在内。
有兴趣的话去试试看或者告诉你们“金山”的人试试对RTL语言实现屏幕取词。
好像还没有软件能那样做。我只知道阿拉伯语还没有这样的软件,至于其它RTL语言我就不太清楚。。
Best regards,
CIONO1

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-7-21 12:17 新手

牛啊!
不知有没有现成的库 DLL 可以直接调用, 自己花力气写太麻烦.
如果那位有现成的 CODE (FOR WIN-XP,2K, IE6), 不知可否 传给我.
当然, 你不会白传的. (MOC.OOHAY|888_CMV#MOC.OOHAY|888_CMV)

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-11-22 12:09 kety

很有启发性, 我这两天在研究直接通过程序向金山词库查词的方法. 可以基础太差了, 没办法做下去, 看了你的文章似乎又懂了一些. 但又不太懂, 我看似乎是normgrab.dll这个东东是查词的关键, 用软件查看就只有InitHookDll 和 CleanupHookDll这两个入口, 但弄不懂怎样用啊. 请指教

  1. 关于屏幕取词的问题(转) 2004-11-26 16:00 RaoX

Ping Back来自:blog.csdn.net

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-12-24 14:07 RED17

估计实际过程可能是内核为TEXTOUT的物理地址所在的页面构造一个新的可写的页表项,从程序的角度讲也就是获得了一个新的线形地址,可以从新的可写的页表访问同一个物理地址

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-12-26 1:25 ??

金山词霸的词库加密吗??

是什么格式的??

谢谢

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-1-16 13:33 cqhydz

取自水木清华bbs,希望大家有用。
kingsoft的词库引擎
ksengine.dll
kingsoft的语音引擎
ksvoice.dll
这两个文件和辞典文件在词霸的安装包里找找就有了:)

利用regsvr32注册
即可使用两个com组件

web辞典就不需要语音引擎了
http://cai.wk211.com/test/word.aspx?q=nice

winform的demo见附件

附件下载地址
http://www.smth.org/bbscon.php?ftype=0&bid=288&id=43499&ap=496

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-2-3 13:44 passer

给api下钩子只能算是小技巧而已。不知作者能否解释一下钩子的原理,以及为什么全局挂钩只能实现为dll形式?另外词霸的取词速度尚可,不知实现上有什么技巧?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-2-10 19:33 gudu

在没有弄懂之前,我也觉得很复杂,有一天我忽然钝悟,才发觉原来如此简单,真的是大道自然啊。
我现在的取词功能已经接近金山词霸了,只是不能取pdf,其它方面和金山词霸没什么区别。
我现在把这个取词功能运用到了我的一个软件中。
如果我的软件销量不好,我就准备把取词程序公开。
我的email:moc.uhos|336nesnil#moc.uhos|336nesnil

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-2-10 19:44 gudu

如果我公布,你看了代码后会觉得太简单了。

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-3-18 16:01 王强

能不能用VB实现屏幕取词

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-5-4 9:24 yuanzi gudu

正在做一个使用取词的小软件,能否告知一二,谢谢。主要是应用

  1. 金山词霸”屏幕取词技术揭密(讨论稿) 2005-6-20 0:37 土星站了一晚

Ping Back来自:blog.csdn.net

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-8-6 16:54 sun201201

我有一个DLL
但好像不能取"金山词霸"的取词框
不知能否告知为什么?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-8-18 11:43 abc

请问如何取到词霸即时翻译的提示框内的词呢?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-9-3 23:05 king

我能取到

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-9-26 14:43 我我

想问一下各位高手,为什么windows xp sp2和金山词霸屏幕取词有冲突呢,windows总是报错,应该怎样解决?谢谢

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-9-27 22:52 sun

请问如何取到词霸即时翻译的提示框内的词???有谁能知道??
联系方式:moc.621|102102nus#moc.621|102102nus

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-10-2 12:58 sun201201

我做的取词怎么与金山词霸相冲突呢???
没打开金山词霸的时候运行完好
打开金山词霸,取第一次词完全可以,当取第二次的时候
就出现错误了
为什么啊?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-10-6 20:30 jiang

我的系统是xp的,但为什么不能用金山词霸的屏幕取词功能--一打开金山词霸的屏幕取词功能,屏幕只要鼠标有移动就立即刷屏。请教!十万火急….
有谁知道的发我Email:moc.361|919zxj#moc.361|919zxj

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-10-8 13:10 guest

能不能用VB实现屏幕取词 ?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-10-15 20:59 nana

我的系统是xp的,但为什么不能用金山词霸的屏幕取词功能--一打开金山词霸的屏幕取词功能,屏幕只要鼠标有移动就立即刷屏。请教!十万火急….

我说:你一定装了正版的金山独霸吧。
我也和你一样,用不料盗版的金山词霸。
我决定改用瑞星。

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-11-1 11:37 xiaoguo ge

My 2005 version have the same problem with WinXP SP2.
Basicly JSCB kills the target window when it is doing api hooking. It even kills windows desktop and shell, but not IE

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-11-24 14:19 AMY

我们公司新买的电脑也出了这个问题,本来是我去负责买的,他们都 以为是电脑的配置有问题(因为不懂)现在才知道为什么不停地刷屏

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-12-8 20:15 yicanbao

我的系统是xp的,但为什么不能用金山词霸的屏幕取词功能--一打开金山词霸的屏幕取词功能,屏幕只要鼠标有移动就立即刷屏。请教!十万火急…

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-12-13 9:30 这么巧

http://support.kingsoft.com/c_1/XdictGrb.dll

金山的补丁

  1. cdc103941 2005-12-27 1:00 马军

中国大学生服务网 e卡通vip金钻卡 e卡通会员 卡号cdc103941 查密码

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2005-12-27 1:05 马军

想不起

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-1-16 1:41 beginner

词霸2005,2006还用API Hook吗?
安装文件里有Cjktl16.dll,Cjktl32.dll,Cjktl95.dll来实现API hook,就是通常我们知道的哪些方法。
不过好像没什么用…删除它们都不会影响取词???
XdictGrb.dll 还没弄清楚为了什么
Normgrab.dll里的InitHookDLL
有这么一段
push eax ; lpVersionInformation
call ds:GetVersionExA
test eax, eax
jz loc_10002144
mov eax, [ebp+VersionInformation.dwPlatformId]
dec eax
jz short loc_100020C4 ; win95?? why?
dec eax
jnz loc_10002144
push 1
pop eax
jmp loc_10002146
loc_100020C4:
call sub_10002BE2 ; 这里就取 cjktlxx.dll 的函数 xeInit,xeEnableHook …等等
===
看来还要再研究研究…
xdict.exe 需要unpack..还没找到合适的
希望有人帮忙

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-2-15 19:28 来看看

RE:我用的是瑞星正版,金山词霸是OEM版(盗版金山词霸2003也用过),XP是盗版,但是安装之后,只要一打开金山词霸,也是立即刷屏,系统就死机了!请教是怎么回事?

是否前面有位大侠的金山补丁装上就没事了呢?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-2-15 20:05 来看看

OK,名位刷屏的兄弟姐妹们,使用前面一位大侠的补丁替换金山词霸目录中同名文件,即可解决问题,不信试试看吧!
谢谢那位“这么巧”大侠了!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-2-28 18:07 龙卷风

可以用了 太感谢了

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-3-10 14:22 在水一方

OK,名位刷屏的兄弟姐妹们,使用前面一位大侠的补丁替换金山词霸目录中同名文件,即可解决问题,谢谢那位“这么巧”大侠了! 真的是高手啊!!!!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-3-12 21:57 timewq

真的可以啊!金山词霸2006覆盖了原来的xdictgrb.dll文件后,内存溢出的现象也消失了,“这么巧”你真牛!谢谢啊!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-3-12 23:00 spring

试了一下,是比以前好多了,但有时还是内存溢出啊!谁有破解版的Powerword 2006 SP1,我下载的一个咋不叫装?有没有个彻底的解决办法?
email:moc.621|4002_lwilgnaw#moc.621|4002_lwilgnaw

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-3-13 1:31 shine

刚刚使用了前面一高手的替换文件,可还是无法用到屏幕取词功能

究竟怎么回事?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-3-24 20:15 liliang

发水木清华BBS内哥们你的办法好使又简单,我的可以用了,真心谢谢你了!:)

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-3-31 22:42 wo

感谢那位这么巧大虾的指点,本机真的再不刷屏了,hoho 再次感谢!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-4-10 11:28 ReadMe

好高深啊

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-4-10 19:04 周蚊王

同谢“这么巧”,我的也不刷屏了,谢啦!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-4-27 0:42 ZKJ

谢谢 “这么巧”先生,你给我解决了屏幕取词的问题,真是太感谢了! 不能打开取词模块的网友,请下载“这么巧”先生的DLL,覆盖原目录下的DLL文件就OK啦!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-5-12 12:35 hsbx

我的下载了那个补丁,还是不行啊。正版win xp home editon sp2 ntfs分区 瑞星杀毒软件 和 金山词霸2003

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-5-21 23:55 Tiantian

我的下载了那个补丁,也还是不行啊.我用的是正版win xp Media Center Edition, Version 2002, SP2,正版金山词霸2005专业版;Dell XPS DXP051 Intel Pentium D.我也试了在系统的数据执行保护中添加explorer.exe和rundll32.exe,还是刷屏,将鼠标取词改成中键取词后,不刷屏了,但是一按鼠标中间,打开的程序就会自动关闭。大侠们,请指教指教啊,先谢过了!我的邮箱moc.oohay|naitssimelttil#moc.oohay|naitssimelttil

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-6-6 20:52 anky

我的是金山2003的出现一个情况就是打开金山词霸程序不能查词,就像没有词库一样,还有他只能在word里面取词不能在其他程序里面取词,这是怎么回事啊

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-6-7 8:11 浪

为什么我一开屏幕取词就死机呀

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-6-14 17:37 rider

问一个显得比较弱的问题
截取到了TextOut()函数输出的内容后,要怎么计算鼠标在哪个单词上呢?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-6-22 3:46 xixi

在win98下怎么用XdictGrb.dll

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-6-29 14:07 哪个你奶奶的

cqhydz 的网址什么也不是的!
http://cai.wk211.com/test/word.aspx?q=nice

  1. 金山词霸”屏幕取词技术揭密—转贴 2006-7-10 20:32 amandaken

金山词霸”屏幕取词技术揭密(讨论稿)

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-7-21 14:42 做了个取词不好用

做了一个屏幕取词软件,怎么在有些地方不能取词呢,很奇怪啊,哪位大侠提示一下,什么情况的词取不下来!谢谢了!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-7-21 15:00 做了个取词不好用

TPanel是个什么东西,为什么在这个上面取词功能不好用呢???好心人帮助一下!nc.moc.anis|nemhyh#nc.moc.anis|nemhyh

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-7-25 8:57 freewings

我是xp环境,但我建立了受限帐户,在超级用户下屏幕取词很正常,受限用户却刷屏,打了那个补丁也没效果。
而且只能把兼容性设为windows 2000,才能有词库。

在超级用户下可以屏幕取词,在受限用户下却不行,怎么解决?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-7-27 20:26 Ayu

咱们以截取TextOut为例。
下面是代码:
//截取TextOut

这个例子的代码好像不怎么全,有没有信更全面一点的代码啊
特别的生成jmp跳转这部分

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-7-27 20:32 Ayu

有没有人在wince下做过屏幕取词啊!!!!!!!!!11

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-7-31 2:50 柯南、新一好帅~~~

太感谢那位这么巧大虾的指点,thank you very much!
好人啊!!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-8-4 21:30 LIU

好办法,顶!
解决了困扰我很久的问题

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-8-4 21:31 LIU

不胜感激啊

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-8-29 20:00 牛

谢谢大侠解决取词刷屏问题,哈哈

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-9-27 19:01 联邦

谢谢,我的也可以用了,太感谢了

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-9-28 20:51 kcahcn

"屏幕取词对LTR语言不怎么麻烦但是对RTL(像Arabic,Hebro…)就不一样了。"
RTL语言的问题解决了!
ADOBE 取词也解决了只是要有“Adobe Integration Key License Application (IKLA)“才能用在Adobe reader
—-
Babylon的软件也不错。支持很多语言

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-10-15 12:13 beyond0535

谢谢
这么巧大侠,使用金山词霸再也不刷屏了,不胜感激!

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-10-31 14:13 Gamema

我谢谢你!~这么巧!~
我的救命恩人!~

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-4 11:38 nzwhappy

太谢谢这么巧大侠了!我不小心下载了你的补丁,真的可以啦!!!感谢这些网络高手!

  1. 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-8 18:47 eagletian

金山词霸”屏幕取词技术揭密(讨论稿)

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-8 22:54 死猪头

想写字,想得不得了,快完蛋了,见前鬼了

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-12 22:25 zxx

xdict 2002 怎么没那个文件的拉…

那不是问题还要继续?

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-20 23:19 heidi

请问:我装了金山词霸2006及2003为什么都不能屏幕取词,鼠标一往外移,整个屏幕除了金山词霸这个窗口在,其余都是白屏,就像死机一样,为什么呀?速回,感激.

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-26 10:19 yuyu

请问 金山词霸怎么在别的网页等上面不能取词是为什么哦? 当查词时在这个字典里面到可以取词

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-26 10:20 YUYU

请问 金山词霸怎么在别的网页等上面不能取词是为什么哦? 当查词时在这个字典里面到可以取词

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-26 10:21 YUYU

请问 金山词霸怎么在别的网页等上面不能取词是为什么哦? 当查词时在这个字典里面到可以取词
谁能告诉我哦

  1. re: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-26 10:23 YUYU

取词功能只在词典界面有效???为什么哦

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-28 17:04 haiwangxing

谢谢这么巧大侠

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-11-28 17:05 haiwangxing

我的问题也解决了,谢谢这么巧大侠

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-12-13 11:56 andy

词霸软件取词不能在普通用户权限下运行,而办公环境却是普通用户权限的。大侠怎么解决这个问题啊

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-12-13 12:00 andy

现在很多软件不能在普通用户权限下运行,而办公环境却是普通用户权限的。其实那些软件公司早就应该弄懂微软的软件在真正办公环境管理的要求。微软为甚么构架了多用户,多用户的等级不同而环境也是不同的,软件公司怎么到现在还没有这个意识,真悲哀!

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-12-23 23:18 vane

小弟想问一个问题,我的金山词霸是2006OEM版,今天用时,突然出现了问题,就是一打开,就没有响应了,无法关闭,在任务管理器里也无法关闭,而且xdict进程也无法关闭,只有重启才行,重装软件(要重新输入注册码),还是这样,但不双击打开,而是选择右键运行打开的话,可以使用,但每次都要输入注册码,而且不能屏幕取词,不能输入中文查单词,郁闷死了,哪位大虾帮帮忙啊

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-12-24 19:45 same

我也出现了和楼上兄弟一样的情况啊,郁闷得很啊,一取词就卡了关都关不了,安了个2007版,问题依旧啊!

  1. 请问: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-12-26 8:00 一平

我也出现了和楼上兄弟一样的情况啊,郁闷得很啊,一取词就卡了关都关不了,安了个2007版,问题依旧啊!

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2006-12-27 20:12 vane

呵呵,小弟我搞定了 到百度上找到的

点激卡巴(主动防御),禁用(程序活动分析),就行了.

和我一样装了词霸和卡巴的人都可以解决冲突的问题了 拉拉 网络真好

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2007-1-18 10:27 Rachel

哈哈,我同意楼上的,超级简单

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2007-1-22 15:16 king

我是使用金山的dll怎么只能获取28个字就不能使用了。有谁研究过吗?

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2007-2-3 16:36 Skysea

哪位大侠研究过金山现在(比如2007)取词的原理是什么,给小弟介绍一下,不胜感激!

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2007-2-6 21:03 michelle

谢谢vane 提出的问题,我也有同样的经历.也用同样的方法搞掂了.但现禁用了卡巴的(程序活动分析),卡巴的防毒杀毒功能同样奏效吗?另现在我的词霸是不能发音朗读的,那该怎么办哟??!!快帮帮我

  1. 请问: 金山词霸”屏幕取词技术揭密(讨论稿) 2007-2-6 21:04 michelle

谢谢vane 提出的问题,我也有同样的经历.也用同样的方法搞掂了.但现禁用了卡巴的(程序活动分析),卡巴的防毒杀毒功能同样奏效吗?另现在我的词霸是不能发音朗读的,那该怎么办哟??!!快帮帮我

  1. 金山词霸”屏幕取词技术揭密(讨论稿) [转贴] 2007-2-26 13:10 坚强2002

金山词霸

  1. 回复: 金山词霸”屏幕取词技术揭密(讨论稿) 2004-6-24 10:28 heihei

上一篇虚拟机妈的,搞了一下午
下一篇使用stl实现heap
主题推荐金山词霸技术
猜你在找
Microsoft Excel 2013高级教程VC++游戏开发基础系列从入门到精通Windows Server 2012 DNS Server 管理Windows Server 2012 R2 Hyper-V 管理零基础学HTML 5实战开发(第一季)
金山词霸屏幕取词技术揭密—转贴wwww3orgdelphi 金山词霸屏幕取词技术解决金山词霸在Firefox 3中实现屏幕取词金山词霸无法屏幕取词的解决方法
准备好了么? 跳吧 !更多职位尽在 CSDN JOB
iOS开发(初级/高级/技术专家)
Dolphin-Talent Consulting|15-30K/月我要跳槽
技术经理(PHP或移动开发)
深圳市博思协创网络科技有限公司广州分公司|16-25K/月我要跳槽
技术应用部应用开发岗
中信期货有限公司|10-20K/月我要跳槽
工程师 – 技术服务中心
艾熹信息技术(上海)有限公司|5-7K/月我要跳槽

查看评论

暂无评论

您还没有登录,请[登录]或[注册]

  • 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
个人资料
访问我的空间
shunan

访问:70766次
积分:1290
等级:
排名:第17302名
原创:51篇转载:14篇译文:0篇评论:17条
文章搜索

文章分类
c/c++ (6)
linux(8)
图形图像(5)
杂文收藏(3)
百态生活(3)
程序人生(18)
算法相关(10)
职场人生(10)
文章存档
2012年12月(1)
2012年08月(1)
2012年06月(2)
2011年12月(1)
2011年06月(4)
展开
阅读排行
字符串匹配之有限自动机&kmp算法(3345)
构造voronoi图分治算法(3144)
判断点是否在一个三角形内部(2971)
第一个工作单位的那些事(2533)
凸壳串行算法(2242)
【转载】金山词霸”屏幕取词技术揭密(讨论稿) (2114)
工具栏中添加combobox等edit control(sdk)(2057)
poj 1990(1697)
构造voronoi图的数据结构(1649)
初识jdbc对oracle数据库事务处理(隔离级别)(1602)
评论排行
图形编辑器中的文本框实现(sdk)(5)
unix终端上的delete end home 键怎么不管用(2)
感慨我的四年大学(2)
构造voronoi图分治算法(2)
判断点是否在一个三角形内部(2)
对于结构体 用位域表示(1)
c/c++ reference 阅读之一——vector,list,deque(1)
外汇交易相关术语(1)
工具栏中添加combobox等edit control(sdk)(1)
ftpascbin区别总结(0)
推荐文章

最新评论
工具栏中添加combobox等edit control(sdk)
Lead_H: 完全看不懂,表示。。。。。。。
感慨我的四年大学
Shiliang3: 同感
构造voronoi图分治算法
fengzhiyunyyy: 说的很详细 如果再分析下算法的效率就更好了
判断点是否在一个三角形内部
ibrahi7439: 如果此两组的向量叉乘的结果都是异号的,即方向相反的,则说明是在三角形内部,否则在三角形外部??、叉乘…
外汇交易相关术语
ustcome: 难得看到一个做外汇的校友,哈哈
构造voronoi图分治算法
real_d: 有没源码呀
感慨我的四年大学
shenlongenjoyjava: 楼主加油,向楼主学习。我本科感觉没学到啥,现在在努力补课呢。
判断点是否在一个三角形内部
ligend: 1. 求三角形中心 pt2. pt 和 需要判断的点 p 的连线 和三边都不相交.3. 线段不相交有…
unix终端上的delete end home 键怎么不管用
shunan: . 重复刚才的操作; U 撤销刚才的操作。到上次保存前 u 撤销之…
unix终端上的delete end home 键怎么不管用
shunan: 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n file…
C++相关
杨老师的茅屋(COM,VC)
C/C++ Reference
linux
Linux无盘集群系统
LinuxSir.Org
CU-Linux论坛
GNU Make 使用手册(中译版)
格式化文件
w3c在线教程
母校—中国科大
科大50年
——科学的春天
数据库
Mysql中文参考手册

http://blog.csdn.net/shunan/article/details/1528887


本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用,仅有一个特殊要求,请用链接方式注明文章引用出处及作者。请协助维护作者合法权益。


系列文章

文章列表

  • WinC屏幕取词原理技术贴汇总 - 亦东讲座

这篇文章对你有帮助吗,投个票吧?

rating: 0+x

留下你的评论

Add a New Comment