首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问怎么进行屏幕取词

2012-09-10 
请教如何进行屏幕取词网上金山词霸的例子做了很多,没有一个能成功的。下面是我的代码C# codeusing Systemu

请教如何进行屏幕取词
网上金山词霸的例子做了很多,没有一个能成功的。下面是我的代码

C# code
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using XDICTGRB;using CBGrabProxyLib;namespace WindowsFormsApplication3{    public partial class Form1 : Form, IXDictGrabSink /*  ICBGrabSink */    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            GrabProxy gp = new GrabProxy();          gp.GrabInterval = 2;//指抓取时间间隔             gp.GrabMode = XDICTGRB.XDictGrabModeEnum.XDictGrabMouse;//设定取词的属性             gp.GrabEnabled = true;//是否取词的属性             gp.AdviseGrab(this);                   }               int IXDictGrabSink.QueryWord(string WordString, int lCursorX, int lCursorY, string SentenceString, ref int lLoc, ref int lStart)        {            //this.textBox1.Text = SentenceString.Substring(lLoc + 1,1);//鼠标所在字符            //Console.WriteLine(SentenceString);            this.textBox1.Text = SentenceString;            return 1;        }    }}



[解决办法]
操作系统是什么系统,Windows7某些显示方式可能不是调用的以前的API了。
[解决办法]
用微软提供的detours库试试吧。

我记得曾经看过WindowsXP使用TextOut这个API输出文字,通过拦截这类函数,就能取到了。

划词可以通过拦截反显文字的API,不过反显文字可能有些软件没调用系统API,而自己写的那样就取不到了。
[解决办法]
我记得以前我看过一本书,那本书上好像用的是钩子的方法截取系统的消息来进行处理的。

热点排行