热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

包含vb.net屏幕取单词的词条

如何用VB获取屏幕信息在有些软件里当鼠标移到某单词上,其注释就会显示单词的中文解释.这样的软件是如何制作的呢?下面我就介绍以下获取鼠标所在单词的方法,至于中文结实要关系到数据库及字

如何用VB获取屏幕信息

在有些软件里当鼠标移到某单词上,其注释就会显示单词的中文解释.这样的软件是如何制作的呢?下面我就介绍以下获取鼠标所在单词的方法,至于中文结实要关系到数据库及字库问题在此我不做解释.

首先建立新工程,在FORM上添加一个TEXT文本框.

声明SendMessage函数.

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const EM_CHARFORMPOS=HD7注释:在API浏览器里无此值请自己加上.

自定义过程:

Private Sub Text1_MouseDown(Button As Intege,Shift As Integer,x As Single, y As Single)

注释:获取鼠标所点的是第几行第几个字符

Dim pos As Long,Lc As Long

Dim Line As Integer,CharPos As Integer

x=x/Screen.TwipsPerPixelX

y=y/Screen.TwipsperPixelY

pos=x+y*65536

Lc=SendMessage(Text1.hwnd,EM_CHARFROMPOS,0,ByVal pos)

Line=Lc65536 注释:第几行

CharPos=Lc MOD 65536 注释:第几个字符

End Sub

注释:接下来才是真正的读取函数

Function GetWord(txt As TextBox,pos As Integer) As String

Dim bArr()As Byte,pos1 As Integer,pos2 As Integer, i As Integer

bArr=StrConv(txt.Text,vbFromUnicode)注释:转换成Byte数组

pos1=0:pos2=UBound(bArr)

注释:向前搜索分格符的位置

For i=pos-1 To 0 Step -1

If IsDelimiter(bArr(i)) Then

pos1=i+1

Exit For

End If

Next

注释:向后搜寻分隔符字符的位置

For i=pos To UBound(bArr)

If IsDelimiter(bArr(i)) Then

pos2=i-1

Exit For

End If

Next

注释:截取pos1-pos2之间的字符,以构成一个单词

If pos2pos1 Then

ReDim bArr2(pos2-pos1) As Byte

For i=pos1 To Pos2

bArr2(i-pos1)=bArr(i)

Next

GetWord=StrConv(bArr2,vbUnicode)

Else

GetWord=""

End If

End Function

注释:IsDelimiter函数

Functon IsDelimiter(ByVal Char As Byte) As Boolean

Dim S As String

S=Chr(Char)

IsDelimiter=False

If S=" " Or S="," Or S="." Or S="?" Or S="vbCr Or S=vbLf Then

IsDelimiter=True

End If

End Function

vb 屏幕取词

代码没错

你复制别人代码要注意回车

你下载了XdictGrb.dll后

在”工程”>”引用”>选择词霸的”XdictGrb.dll”

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 Sub Form_Unload(Cancel As Integer)

Set gp = Nothing

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 = "当前语句:" SentenceString

Label3.Caption = "当前字符:" Mid(SentenceString, lLoc + 1, 1000)

End Function

VB.Net 单击事件各个单词的含义?

我一开始也是这样,很迷惑,在使用一段时间后,就基本了解了:

Button1_Click是函数名,可以随便改,而Vb6一个字都不能变

sender是System.Object类型的变量,代表控件对象,当此事件对应多个按钮点击事件时,就要用sender来区分,而VB6用控件数组中的index来区分

e是System.EventArgs类型的变量,代表一个委托声明,是包含事件数据的类的基类,用于传递事件的细节,你暂时不用理会这是什么意思,以后慢慢会了解的

简单点说就是对象sender导致了某个事件的发生,事件的内容就是(e)

handles是一个委托,相当于由handles后面的参数间接引发事件,以你的例子就是Button1的Click事件引发这个函数的调用,你还可以添加别的按钮甚至别的事件进来:

Private Sub MyExampleClickEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.DoubleClick, PictureBox1.MouseDown

' Button1单击事件、Button2双击事件、PictureBox1鼠标按下事件共享同一个MyExampleClickEvent过程。

VB.NET如何实现撷取区域屏幕

既然能够取得整个屏幕,可以取到整个屏幕以后创建一个全屏窗体显示静态的屏幕图像,然后在窗体上实现部分截取。

估计别的截图也是这个原理,因为一点开始截图屏幕就变为静态不动了,肯定是在截图初期复制了当时的屏幕场景


推荐阅读
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤
    开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • 在深入探讨进程间通信技术时,本文重点解析了描述符传递的方法。通过详细分析发送和接收描述符的过程,文章首先介绍了发送描述符的具体步骤,并提供了相关函数原型。此外,还讨论了如何高效地在不同进程之间传输文件描述符,以实现资源的共享和同步。这一技术在多进程应用中具有重要意义,能够显著提升系统的性能和可靠性。 ... [详细]
  • 本文全面解析了 Python 中字符串处理的常用操作与技巧。首先介绍了如何通过 `s.strip()`, `s.lstrip()` 和 `s.rstrip()` 方法去除字符串中的空格和特殊符号。接着,详细讲解了字符串复制的方法,包括使用 `sStr1 = sStr2` 进行简单的赋值复制。此外,还探讨了字符串连接、分割、替换等高级操作,并提供了丰富的示例代码,帮助读者深入理解和掌握这些实用技巧。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
author-avatar
希望全家人都幸福_870
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有