鼠标按下后,拖到一个窗口位置,松开鼠标,就能得到鼠标位置处的文字请问VB如何实现呢?(不要用其它的DLL,直接用API)谢谢啊!

解决方案 »

  1.   

    找到了。用以下代码就可以了Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function WindowFromPoint Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long 
    '声明过程 
    Private Const WM_GETTEXT = &HD
    Private Const WM_SETTEXT = &HC Private Type POINTAPI
    x As Long
    y As Long
    End Type Private Sub Timer1_Timer()
    Dim Shu As POINTAPI
    Dim Str As String * 300
    GetCursorPos Shu
    SendMessage WindowFromPoint(Shu.x, Shu.y), WM_GETTEXT, 299, ByVal Str
    Label1.Caption = Str '使获得的句柄在label1里显示End Sub
      

  2.   

    SendMessage WindowFromPoint(Shu.x, Shu.y), WM_GETTEXT, 299, ByVal Str这个地方挺麻烦的直接GetWindowText不就OK 了
      

  3.   

    没有那么简单屏幕取词要拦截API的
      

  4.   

    如果用GetWindowText还要得到鼠标位置的句柄,也是麻烦的。
    我这里只是得到caption或text中的文字就可以了。如果是任意地方取词,像金山词霸一样,就得拦截API,太麻烦了。