vb求思路,望各位高手们指教。

来源:百度知道 编辑:UC知道 时间:2024/06/03 02:36:57
我有一窗口;我要取得里面的一个词语。如:风景
我的思路:以图片形式处理。以它的左上角哦相对坐标原点,分别向右、向下搜索。但这里有点怎么确定那两个字呢?以像素确定?如何确定呢?
还有其它更好的方法吗?

如果以像素确定的话,那成功率会很低的,字体,色彩,大小,字间距都不定,干脆这样吧,用类似金山词霸的屏幕取词功能,其原理是HOOK系统的文字输出函数,发送一个消息让你的那个窗口重画,然后截取windows的文字输出函数,搜索有没有你要的词语,如果有,得到其位置,这是原理,但据说能做出完整程序的人不多,我也只是知道原理,详细可以参考最下面的连接.
在VB里你也可以用下面的方法试试,看能不能修改一下,实现你要的功能,但效率可能会很低!

到网上下一个XdictGrb.dll,用regsvr32注册一下
如果电脑里有金山词霸,可以从里面找
新建立一标准exe程序,选择菜单栏中的工程-引用,浏览,找到这个文件,确定后前面打上勾,再确定
窗体中添加三个label控件,

Option Explicit
Implements IXDictGrabSink
Private gp As GrabProxy
Private Sub Form_Load()
Set gp = New GrabProxy
With gp
.GrabEnabled = True
.GrabInterval = 30
.GrabMode = XDictGrabMouse
.AdviseGrab Me
End With
End Sub

Private Function IXDictGrabSink_QueryWord(ByVal WordString As String, ByVal lCursorX As Long, ByVal lCursorY As Long, ByVal SentenceString As String, lLoc As Long, lStart As Long) As Long
Label1.Caption = "当前坐标:" & "(" & lCursorX & "," & lCursorY & ")"
Label2.Caption = &qu