网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月13日漏签0天
vb吧 关注:156,057贴子:1,166,213
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 6回复贴,共1页
<<返回vb吧
>0< 加载中...

谁做过屏幕取词并标注的代码,给我点经验!谢谢

  • 只看楼主
  • 收藏

  • 回复
  • 湖畔青风
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如题


  • 121.26.32.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
自己顶一下,希望有人帮忙


2025-12-13 13:14:39
广告
不感兴趣
开通SVIP免广告
  • 湖畔青风
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这段代码实现了在一个窗体上显示鼠标的坐标,但如何得到鼠标位置的词,我不知道怎么弄,请帮忙: 
 
'窗体代码:
Option Explicit
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)

Private Sub Form_Activate()
 '设置窗口为TOPMOST窗口,目的是便于观察
 SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

Private Sub Form_Load()
 Dim RT As RECT
 With RT
 .Left = 0
 .Right = 400
 .Top = 0
 .Bottom = 300
 End With
 EnableHook RT
End Sub

Private Sub Form_Unload(Cancel As Integer)
 FreeHook
End Sub

 

'模块代码:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Function PtInRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lparam As Any) As Long
Private Const HC_ACTION = 0
Private Const WH_MOUSE_LL As Long = 14
Private Const WM_MOUSEMOVE = &H200

Public Type RECT
 Left As Long
 Top As Long
 Right As Long
 Bottom As Long
End Type

Private Type POINTAPI
 x As Long
 y As Long
End Type


Private Type MSLLHOOKSTRUCT
 pt As POINTAPI
 mouseData As Long
 Flags As Long
 time As Long
 dwExtraInfo As Long
End Type


Public hHook As Long
Public hRT As RECT

Public Sub EnableHook(hRect As RECT)
 hRT = hRect
 If hHook = 0 Then
 hHook = SetWindowsHookEx(WH_MOUSE_LL, AddressOf HookProc, App.hInstance, 0)
 End If
End Sub

Public Sub FreeHook()
 If hHook <> 0 Then
 Call UnhookWindowsHookEx(hHook)
 hHook = 0
 End If
End Sub

Public Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lparam As Long) As Long
 Dim typMHS As MSLLHOOKSTRUCT, pt As POINTAPI
 If nCode < 0 Then
 HookProc = CallNextHookEx(hHook, nCode, wParam, lparam)
 Exit Function
 End If
 If wParam = WM_MOUSEMOVE Then
 Call CopyMemory(typMHS, ByVal lparam, LenB(typMHS))
 pt = typMHS.pt
 If PtInRect(hRT, pt.x, pt.y) <> 0 Then
 HookProc = 1 '取消原本要完成的动作
 Else
 Form1.Caption = "mouse Cursor at " + CStr(pt.x) + "," + CStr(pt.y)
 HookProc = 0 '令待完成的动作继续完成
 End If
 End If
End Function


  • cbm666
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这个难度挺大的,单一文字串好搞, 金山搞了那么久,虽然不错,但感觉还不是挺顺的.


  • 湖畔青风
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在有焦点的窗体内,我实现了这样的功能,但这需要在屏幕上,现在努力研究,也只能是取得屏幕的坐标,坐标处的文字还不能实现,希望老师能帮忙.


这个课题对我很重要.


  • cbm666
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
已发给你了,其中有几个还不错,晚上我再抽空研究一下,但可没把握搞全局的(我没试过)


  • 湖畔青风
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢老师,我也会努力研究.

这个课题搞VC的人说,用VB是不可能实现的
我就是想证实一下,VB的能力.


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示