C# 获取鼠标选中的文字(屏幕取词)

这篇具有很好参考价值的文章主要介绍了C# 获取鼠标选中的文字(屏幕取词)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本来想做鼠标选中翻译小软件,但发现鼠标选取文字获取并不是很容易,经过不断努力,最终实现。

先看展示

c# 鼠标取词,C#,c#,windows,microsoft

下面给大家说下过程,经历。

网上大部分说的都是使用金山提供的那个dll去进行实现,但是我尝试了一下,代码可以跑起来, 但好像没有成功。而且也不知道他Dll内部原理,就放弃了。

另外分享一下金山遇到的问题

在引入金山dll的时候,运行程序后 报错 80040154 没有注册

解决方案:
c# 鼠标取词,C#,c#,windows,microsoft
运行一下指令:regsvr32 D:\测试\Translate\Translate\bin\Debug\netcoreapp3.1\XdictGrb.dll其中 D:\测试\Translate\Translate\bin\Debug\netcoreapp3.1\XdictGrb.dll是你dll的路径。

运行后它会提示你注册成功。如果运行后还是报同样的错。
就改下项目工程属性中的目标平台。改为x86
c# 鼠标取词,C#,c#,windows,microsoft

我的实现过程是使用windows API的方式。

步骤。

  1. 先通过API 使我们的应用可以全局监视鼠标操作。
  2. 当鼠标选中文字后,通过API发送热键命令 ctrl+c(复制的命令)把内容复制到粘贴板
  3. 从粘贴板中读取出选中的内容。

以上是我实现的步骤。

废话不多说。直接上代码。首先定义一个鼠标钩子类。MouseHook文章来源地址https://www.toymoban.com/news/detail-596015.html

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace Translate
{
   
    /// <summary>
    /// 监控鼠标钩子
    /// </summary>
    public class MouseHook
    {
   
        private const int WM_MOUSEMOVE = 0x200;
        private const int WM_LBUTTONDOWN = 0x201;
        private const int WM_RBUTTONDOWN = 0x204;
        private const int WM_MBUTTONDOWN = 0x207;
        private const int WM_LBUTTONUP = 0x202;
        private const int WM_RBUTTONUP = 0x205;
        private const int WM_MBUTTONUP = 0x208;
        private const int WM_LBUTTONDBLCLK = 0x203;
        private const int WM_RBUTTONDBLCLK = 0x206;
        private const int WM_MBUTTONDBLCLK = 0x209;

        //全局的事件    
        public event MouseEventHandler OnMouseActivity;
  
        static int hMouseHook = 0; //鼠标钩子句柄    

        //鼠标常量    
        public const int WH_MOUSE_LL = 14; //mouse hook constant    

        HookProc MouseHookProcedure; //声明鼠标钩子事件类型.    

        //声明一个Point的封送类型    
        [StructLayout(LayoutKind.Sequential)]
        public class POINT
        {
   
            public int x;
            public int y;
        }

        //声明鼠标钩子的封送结构类型    
        [

到了这里,关于C# 获取鼠标选中的文字(屏幕取词)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C#】在Windows资源管理器打开文件夹,并选中指定的文件或文件夹

    因软件里使用了第三方插件,第三方插件的日志文件夹存在路径不止一个,并且可能层级较深。 为便于运维人员和最终用户使用,在界面上增加一个“打开XX文件夹”的按钮,点击时,打开第三方插件日志文件夹所在的上级文件夹,并选中其下级指定名称的若干个文件和文件

    2024年02月14日
    浏览(63)
  • 两种方式实现css取消页面鼠标双击选中文字或单击拖动选中文字的效果

    我们知道浏览器页面上的文字正常情况下我们是可以双击选中、或者单击鼠标横向拖动也能选中的,选中以后可以右击出现面板然后去复制什么的。但是有的时候,这种效果我们并不想要的,比如用户点快了的时候,所以我们需要禁用这种效果,本文记录一下禁用选中效果的

    2024年02月11日
    浏览(73)
  • 张赐荣 | C#调用 WINDOWS语音识别将WAV音频转文字

    C#调用 WINDOWS语音识别将WAV音频转文字 作者:张赐荣 本例使用Windows本地语音识别功能实现语音到文本的转换(支持WAV音频文件)。 public static string SpeechRecognition (string wavPath) { try { System.Speech.Recognition.SpeechRecognitionEngine sre = new System.Speech.Recognition.SpeechRecognitionEngine(); sre.LoadGramma

    2023年04月19日
    浏览(34)
  • JavaScript-----禁止鼠标选中文字和禁止鼠标右键上下文菜单

     selectstart   开始选中 还有一些别的方法,可以参考一下: 禁止鼠标右键 οncοntextmenu=\\\"return false\\\" 禁止选择 onselectstart=\\\"return false\\\" 禁止拖放 οndragstart=\\\"return false\\\" 禁止拷贝 οncοpy=document.selection.empty() 禁止复制 oncopy = \\\"return false\\\" 禁止粘贴 input type=text οnpaste=\\\"return false\\\" 禁止剪贴

    2024年02月10日
    浏览(54)
  • C# Windows登录界面进行截图,控制鼠标键盘等操作实现(三)

    在Windows登录界面进行截图,目前尝试到的以下的截图方法可以截取到图,其它的方式要么卡住,要么截出来是黑屏的,直接上代码: 操作鼠标键盘等操作可以参考本人另一篇文章:使用C#制作可以录制自动化执行Windows操作脚本工具——类似于按键精灵 - log9527 - 博客园 (cnbl

    2024年02月12日
    浏览(38)
  • C# Windows登录界面进行截图,控制鼠标键盘等操作实现(二)

    上一篇:C# Windows登录界面进行截图,控制鼠标键盘等操作实现(一) - log9527 - 博客园 (cnblogs.com) 我们了解了要实现在Windows登录界面进行截图等操作必须满足的条件,这一篇我们主要通过代码实现这些条件。 首先先建一个项目A 下面一些windows自带非托管dll的调用类。 外部调用

    2024年02月12日
    浏览(39)
  • C# 获取Windows系统版本注意事项

    首先通过微软官方文档:https://learn.microsoft.com/zh-cn/windows/win32/sysinfo/operating-system-version了解各个操作系统对应的版本号  下面介绍3种获取版本号的方式及弊端 1. Environment.OSVersion.Version 该方式适合.NET Framework,并且 必须添加应用程序清单文件,并且需要把程序应用程序清单文

    2024年02月10日
    浏览(50)
  • C# 移动鼠标获取chart控件上的任意位置的值,包括曲线上的数据点的值

    在利用C#控件绘制曲线图后,有时我们需要通过鼠标查看数据点的值信息,常用的方法就是利用chart控件的chart1_GetToolTipText(object sender, ToolTipEventArgs e)事件来获取数据点的信息,如下我用两个label来显示获取的数据点的值 相关代码如下 但是该方法有个弊端,那就是只能获取曲线

    2024年02月10日
    浏览(38)
  • Unity中实现获取InputField选中的文字

    一:前言 获取到选中的文字:哈哈 二:实现 UGUI的InputField提供了selectionAnchorPosition和selectionFocusPosition,开始选择时的光标下标和当前光标下标  

    2024年02月12日
    浏览(33)
  • C# Windows API应用:获取桌面所有窗口句柄的方法

    C# Windows API应用:获取桌面所有窗口句柄的方法 在 C# 的 Windows 应用程序开发中,我们常常需要获取桌面上所有窗口的句柄,以便进行一些窗口管理或者后续操作。本文将介绍一种利用 Windows API 获取桌面所有窗口句柄的方法,并提供相应的源代码和描述。 在开始之前,我们需

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包