精华内容
下载资源
问答
  • 划词取词
    2020-12-02 06:04:35

    1. 缘起

    要搞一个作弊软件,需要把屏幕上的试题取下来。

    据说针对IE的取词很难,所以也就打消了自己开发的念头,找一找好用的控件。

    发现了两个可以用的,一个是金山词霸的XdictGrb.dll文件,一个就是上面的GetWord。

    1.1 金山词霸 XdictGrb.dll

    C# 的例子似乎不太稳定,取几个词之后就取不到了,不知道卡在哪里了。

    而且 C# 转换为 Python 也遇到了困难,主要是不太熟悉COM和Python的相互调用,留着以后解决。

    1.2 GetWord 3.3

    GetWord 3.3,自带VB\VC\C#\Delphi的例子。

    大概看了下原理:首先需要自己创建一个窗体。每当控件取词成功之后就会向这个窗口发送一个消息作为通知。窗体接受到消息之后可以做进一步的处理。

    1.3 GetWord 官方版

    官网版本比较高,接口变化挺大的,似乎调用起来比以前方便,不用像 3.3 那样非要自己实现一个窗口来接受消息,直接注册一个回调函数就可以了。可惜的是没有找到官方的例子,按照帮助文档试了试,没成功,也就放弃了。反正3.3也好用。

    2. Python + GetWord 3.3

    GetWord 3.3 有两种调用方式,一种是作为ActiveX控件,一种是直接调用DLL内的函数。还是DLL的方法比较简单。

    下面的代码是从 C# 转过来的,由于没有文档,有些函数也不明白是什么意思,不过照猫画虎的能用。

    import win32con,win32gui,win32api

    import ctypes

    class MyWindow():

    def __init__(self):

    self.getword_loaded = False

    #注册一个窗口类

    wc = win32gui.WNDCLASS()

    wc.lpszClassName = 'MyWindow'

    wc.hbrBackground = win32con.COLOR_BTNFACE+1

    wc.lpfnWndProc = self.wndProc

    class_atom=win32gui.RegisterClass(wc)

    #创建窗口

    self.hwnd = win32gui.CreateWindow(

    class_atom, u'窗口标题', win32con.WS_OVERLAPPEDWINDOW,

    win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,

    200, 100,

    0,0, 0, None)

    #显示窗口

    win32gui.ShowWindow(self.hwnd, win32con.SW_SHOWNORMAL)

    self._init_getword()

    def _init_getword(self):

    LICENSEID = "{00000000-0000-0000-0000-000000000000}"

    MOUSEHOOK_CAPTURE_OK_MSG = "MOUSEHOOK_CAPTUREOK_MSG-" + LICENSEID

    self.MOUSEHOOK_CAPTURE_OK = win32gui.RegisterWindowMessage(MOUSEHOOK_CAPTURE_OK_MSG)

    self.icall = ctypes.windll.LoadLibrary('ICall')

    self.icall.SetMouseHook(self.hwnd)

    self.icall.MouseEnableCap(True)

    self.icall.GetWordEnableCap(True)

    self.getword_loaded = True

    def _del_getword(self):

    self.getword_loaded = False

    self.icall.RemoveMouseHook()

    hdll = win32api.GetModuleHandle('ICall.dll')

    win32api.FreeLibrary(hdll)

    def _capture_text(self):

    MAX_OUTPUT_LEN = 1024

    x,y = win32gui.GetCursorPos()

    hrwnd = self.icall.GetRealWindow(x, y)

    strtmp = ctypes.create_unicode_buffer('\0' * MAX_OUTPUT_LEN)

    i=ctypes.c_int(-1)

    ok = self.icall.GetWord(hrwnd, x, y, strtmp, MAX_OUTPUT_LEN, ctypes.byref(i))

    if ok:

    print u'全部文本:%s' % strtmp.value

    print u'单词位置:%s' % i.value

    #消息处理

    def wndProc(self, hwnd, msg, wParam, lParam):

    if self.getword_loaded and msg == self.MOUSEHOOK_CAPTURE_OK:

    print 'MOUSEHOOK_CAPTURE_OK'

    self._capture_text()

    if msg == win32con.WM_CLOSE:

    print 'WM_CLOSE'

    self._del_getword()

    if msg == win32con.WM_DESTROY:

    print 'WM_DESTROY'

    win32gui.PostQuitMessage(0)

    return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)

    mw = MyWindow()

    win32gui.PumpMessages()

    3. 其实也不用那么麻烦

    如果只是用来捕获屏幕上某点的文本,而忽略其提供的一套鼠标和键盘响应机制,那么就十分简单了。

    下面的代码单独封装了取词功能。

    from ctypes import *

    from ctypes import wintypes

    class GetWord():

    '''封装 GetWord 3.3 的取词功能'''

    def __init__(self):

    self.icall = windll.LoadLibrary('ICall.dll')

    self.icall.GetWordEnableCap(True)

    def __del__(self):

    hdll = windll.Kernel32.GetModuleHandleA('ICall.dll')

    windll.Kernel32.FreeLibrary(hdll)

    def getText(self,x,y):

    '''屏幕取词,返回坐标所指的一行文字,以及所指字符在行中的索引'''

    MAX_OUTPUT_LEN = 1024

    hrwnd = self.icall.GetRealWindow(x, y)

    strtmp = create_unicode_buffer('\0' * MAX_OUTPUT_LEN)

    i = c_int(-1)

    ok = self.icall.GetWord(hrwnd, x, y, strtmp, MAX_OUTPUT_LEN, byref(i))

    if ok:

    return strtmp.value, i.value

    鼠标和键盘的响应机制包括判断鼠标悬停、快捷键等功能。下面用 pyHook 勉强模仿一下,粗糙简陋,仅仅作为取词演示。

    from pyHook import HookManager

    from pythoncom import PumpMessages

    _gw = GetWord()

    def onKeyDown(event):

    if event.IsAlt(): #当按下Alt键的时候,进行鼠标取词,并打印出来。

    global _gw

    point = wintypes.POINT()

    windll.User32.GetCursorPos(byref(point))

    r = _gw.getText(point.x, point.y)

    if r:

    print u'整行文本:%s' % r[0]

    print u'字符位置:%s' % r[1]

    return True

    if __name__ == "__main__":

    hm = HookManager()

    hm.KeyDown = onKeyDown

    hm.HookKeyboard()

    PumpMessages()

    基于C#利用金山取词组件实现屏幕取词功能

    这个程序在网上有很多例子,近期要做的项目中有和这个有某些一点点相似的地方,就练练,发现在本机上(Win 7 64位)不能实现其功能,可能原因是API组件太老了吧,毕竟金山大佬公布他的组件是2005年, ...

    delphi中使用词霸2005的动态库XdictGrb.dll实现屏幕取词

    近日来,在网上发现关于屏幕取词技术的捷径,搜索很长时间,发现实现方式以VB出现的居多,但是通过Delphi来实现的却好象没有看到,自己参考着VB的相关代码琢磨了一下通过delphi来实现的方式. 其实 ...

    [代码]--c#实现屏幕取词源码下载

    最近公司有一个 项目需要实现类似于金山词霸,有道词典等的屏幕取词功能,准确来说是划词功能,网上搜了各种屏幕取词无外乎就两种: A.金山词霸组件法 B.Nhw32.dll法 百度搜到的重复内容真的太多了 ...

    mac 10.9开启有道词典取词功能

    取词时候,有道词典给出提示,说要去开启辅助功能,但提示的是在mac 10.8上面怎么操作,在10.9的话,就是以下位置去改了. 补充以下: 在mac机器上,实际上大多数的单词都能从自带的词典中查找到. ...

    有道词典for mac不能取词解决方案

    在mac上装了有道词典,发现在Chrome上不能取词,网上也没有搜到合适的解决方案,后来发现解决这个问题很简单,打开有道词典,点击设置, 再点击软件更新,就会发现有chrome取词插件,安装就OK了. ...

    2013-2-1 pdf中无法用金山词霸取词问题

    打开pdf的编辑——〉首选项——〉一般——〉选项——〉开始——〉只有经过认证的插件,把‘checkbox’里的勾去掉,重启. ★在acrobat reader启动画面里如果没有加载xdict32(工具 ...

    document.selection window.getSelection()

    IE9以下支持:document.selection  IE9.Firefox.Safari.Chrome和Opera支持:window.getSelection() 屏幕取词 function ge ...

    Mac 词典工具推荐:Youdao Alfred Workflow(可同步单词本)

    想必大家都有用过 Mac 下常见的几款词典工具: 特性 系统 Dictionary 欧路词典 Mac 版 有道词典 Mac 版 在线搜索 ✗ ✔ ✔ 屏幕取词 ☆☆☆ ★★☆ ★☆☆ 划词搜索 ★★★ ...

    Linux学习内容

    Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...

    随机推荐

    用js实现动画效果核心方式

    为了做好导航菜单,有时候需要在菜单下拉的时候实现动画效果,所以这几天就研究了研究如何用js实现动画效果,实现动画核心要用到两个函数,一个是setTimeOut,另一个是setInterval. 下边我 ...

    (Xaml) Type 'DeviceA' is not defined.

    修改了一些Xaml, 始终提示 Compiler error(s) encountered processing expression "deviceA.B".Type 'Devi ...

    普通用户安装 R 包

    转自 http://bnuzhutao.cn/archives/901 一般 R 语言的书籍上,介绍安装 R 包的方法都是这样的: install.packages("packagename ...

    JAVA 调用matlab 出错总结

    1.Java:Unsupported major.minor version 51.0 (unable to load class 出现该错误是由于class编译器的JDK版本高于运行期的JDK版本. ...

    unigui TUniTreeView demo

    unit untTree; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

    日志logger

    1.使用指定类初始化日志对象 在日志输出的时候,可以打印出日志信息所在类如:Logger logger = LoggerFactory.getLogger(com.Book.class);       ...

    HDU 3966 Aragorn's Story (树链点权剖分,成段修改单点查询)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966 树链剖分的模版,成段更新单点查询.熟悉线段树的成段更新的话就小case啦. //树链剖分 边权修 ...

    抓取天涯文章的蜘蛛代码,刚经过更新(因为天涯页面HTML代码变化)

    #_*_coding:utf-8-*- import urllib2 import traceback import codecs from BeautifulSoup import Beautifu ...

    最强大的跨语言调用生成工具:Swig 快速实用教程

    swig是一个生成其他高级语言调用c和C++代码的工具,比如,大家都知道java的jni,可能没写过,因为非常麻烦,swig可以帮助生成这样的代码,编译生成的代码后,它会生成java类和c代码文件.分 ...

    检测三种不同操作系统的Bash脚本

    检测三种不同操作系统(GNU/Linux, Mac OS X, Windows NT)的Bash脚本. 设计: 1.使用“uname”命令获取系统信息,带上“-s”参数个打印内核名称. 2.使用“ex ...

    更多相关内容
  • 易语言划词取词

    2020-07-23 06:15:04
    易语言划词取词源码,划词取词,鼠标钩子处理,取词,复制图片到剪贴板,从剪贴板取位图,API_SetWindowsHookEx,API_UnhookWindowsHookEx,API_GetModuleHandle,API_CallNextHookEx,设置剪贴板数据,获取剪贴板数据,打开剪贴...
  • 易语言划词取词源码
  • 这几天在vs2019完成,win32实现的简单的划词取词小工具,这里把所有工程文件全部上传,希望能帮助到你们
  • 屏幕取词划词工具

    2017-12-12 13:25:52
    和金山词霸,有道词典完全相同的屏幕取词划词工具。暂无源码,如有需要可与我联系。
  • 易语言划词取词源码

    2015-04-03 22:35:41
    屏选取所需要取词的部分即可取到,易语言例程
  • 首先分析一下划词取词的过程 用户左击鼠标 → 鼠标按下事件onmousedown 鼠标滑过文字 → 文字本身样式改变 转中后抬起鼠标左键 → 鼠标抬起事件onmouseup,同时返回那些文字有变化 那么首先进行简单的代码主体: ...

    完整代码可在最后代码块查看呦!!!
    ※本贴代码,可用用于油猴脚本,支持浏览器F12Console控制台直接运行
    有一段时间呢在百度文库查询资料时被限制了复制,说什么复制次数已达上限,那个
    难受鸭!!于是我打开了传说中的F12,意外的发现了一个功能
    在这里插入图片描述
    就是很意外的发现我所选中的文字会在我的Console视图中显示于是我去看了一下他是那个JS段中打印出来的
    在这里插入图片描述
    97行Emmmm,好像和百度文库没有什么关系,地址好像是我浏览器的插件,然后我将这个插件装入了其他浏览器,发现会报错,应该是兼容问题,之前也想过获取鼠标选中的文字,一直也没有找到代码意思明确的文章,于是趁此时机,学习一波。
    首先分析一下划词取词的过程

    1. 用户左击鼠标             → 鼠标按下事件onmousedown
    2. 鼠标滑过文字             → 文字本身样式改变
    3. 转中后抬起鼠标左键  → 鼠标抬起事件onmouseup,同时返回那些文字有变化

    那么首先进行简单的代码主体:

     document.onmousedown = function(event) {//监听当前页面鼠标按下事件
    	var event = event || window.event;//此处考虑兼容问题
    	if (event.button == "0" || event.button == "1") {//判断按下的按键(0)
    	   document.onmouseup = function(event) {//监听页面中鼠标抬起事件
    	      var txt = "";
    	      if(window.getSelection){//兼容性判断,各浏览器获取有变化处的文字函数不同
    	         txt = window.getSelection();//谷歌等内核浏览器获取方式
    	      }else{
    	         txt = document.selection.createRange().text;//IE普通内核
    	      }
    	      console.log(txt);//控制台打印浏览
    	   }  
       }
    }
    

    可以在页面中添加P标签随便写一些文字,或者放入任意网页console控制台均可,然后鼠标随便选中文字,观察控制台会出现如下内容

    在这里插入图片描述

    恭喜你成功第一步了,那出现了这个当初说好的文字呢???OK其实这个就是文字只是它以一种不同的方式展现了出来,那我们如何得到呢

    		txt = txt+"";
    

    将变量txt经过这步处理会变为字符串的形式了,这个时候就可以在控制台看到你所选中的文字了,你以为这就完了???不完善一下舒服嘛???冲鸭!!!
    继续分析,如果用户点一个按钮,或者选中的是空格怎么办

     	txt = txt.replace(/^\s+|\s+$/g, "");
        if (txt != "") {
            console.log(txt);
        }
    

    OK,首先一个正则判断,将两端空格去除(带着前面一堆空格获取到的字符串很带劲,试试?滑稽.jpg),之后判断如果为空就不获取,普绕飞科特

    划词部分到此结束
    接下来需要在选中文字后追加一个div方便用户复制百度文库文字,那么我们可以将其封成一个方法,只要将上面那一步获取到的字符串传入即可

    function creatDiv(str) {
        var arr = mousePosition();//这是个获取鼠标当前位置的一个方法
        var newDiv = document.createElement('div'); //创建一个div元素;
        var newContent = document.createTextNode(str);//创建文本内容
        newDiv.appendChild(newContent);//将内容放入新创建的div
        newDiv.id = "bblock";//添加一个ID方便之后的操作
        //可以用下操作设置自己想要的CSS属性
        newDiv.style.width = "200px";//设置div宽(视自己需求而定)
        newDiv.style.background = "red";//设置背景颜色
        newDiv.style.zIndex = "1000";//设置层级保证在最上方
        newDiv.style.position = "absolute";//给div添加绝对定位*必有
        //此处要加px否则不生效,+20原因  根据自己需要调整
        newDiv.style.left = arr[0] + 20 + "px";//距左侧距离
        newDiv.style.top = arr[1] + 0 + "px";//具右侧距离
        var bo = document.body; //获取body对象.
        bo.insertBefore(newDiv, bo.lastChild); //动态插入到body中
    }
    function mousePosition(evt) { //当前鼠标位于页面位置
    	evt = evt || window.event;//兼容性判断,满足一个即可有值
    	//兼容写法,获取当前鼠标横坐标
        var xPos = evt.pageX || evt.clientX || evt.offsetX || evt.x;
        //兼容写法,获取当前鼠标纵坐标
        var yPos = evt.pageY || evt.clientY || evt.offsetY || evt.y;
        return [xPos, yPos];//返回数组为当前鼠标横纵坐标
    }
    

    你以为这就完了,OK 调BUG阶段
    分析:

    1. 用户每次划词后都要生成一个新的,那么旧的怎么关闭?
    2. 如果用户在生成的div中进行划词操作,是否也要生成新的div?
    3. 如果才能判断什么情况下要进行销毁旧的div呢?

    解决:

    1. 最好的关闭体验为:单击其他不是新追加的div区域进行关闭
    2. 否,新div的目的就是让用户可以在这里进行选中复制的,要加判断
    3. 根据第一条,得到销毁条件

    由此可以得到我们还需要两个判断(判断div关闭,判断div中划词),和一个方法(鼠标是否离开div)

    设置两个全局变量

    var workType = false; //用户当前是否进行了划词
    var workTool = false; //用户划词后是否正在取词
    

    根据之前给的ID监听鼠标是否离开窗口,如果在则设置workTool为ture

    function bingDiv() {
        document.getElementById("bblock").onmouseover = function() {
            workTool = true;
        }//鼠标移入事件
        document.getElementById("bblock").onmouseout = function() {
            workTool = false;
        }//鼠标移除事件
    }
    

    在划词开始添加判断

     if (workTool) { //如果用户在取词则不进行二次划词操作
    	return 0;
     }
     //如果div存在且不是在取词操作 根据ID销毁该div
     if (document.getElementById("bblock") && !workTool) {
         document.body.removeChild(document.getElementById("bblock"));
     }
     //如果在不是取词操作代码会执行到这里,那么将划词工作状态设为true
     workType = true;
    

    添加判断只有在划词操作下,鼠标抬起才会进行获取文字,追加div的操作,而此时鼠标抬起后,划词工作状态结束

     document.onmouseup = function(event) {
         if (workType) {//是划词状态才进行如下操作
             workType = false;//划词状态结束
             var txt = "";
    	     if(window.getSelection){
    	        txt = window.getSelection();
    	     }else{
    	        txt = document.selection.createRange().text;
    	     }
            txt = txt + "";
            txt = txt.replace(/^\s+|\s+$/g, "");
            if (txt != "") {
                creatDiv(txt);//传入生成div的函数
            }
        }
    }
    

    这里有一个坑,为什么要把判断鼠标是否在新追加的div中封成一个方法呢?
    这个大多数新手会遇到的问题,因为网页是动态渲染的,如果你直接写到划词的方法中进行判断,js是获取不到这个节点的,所以需要在每次创建节点后再去判断,防止获取不到

     function creatDiv(str) {
        var arr = mousePosition();
       		   	  ·
      			  ·
      			  ·
         bo.insertBefore(newDiv, bo.lastChild); //动态插入到body中
         bingDiv();//追加完毕后进行判断
     }
    

    到这里效果就完全实现了

    以下为全部完整代码(可直接打开需要的百度文库,粘贴到console控制台即可使用):

    let workType = false; //当前划词状态
    let workTool = false; //当前取词状态
    document.onmousedown = function(event) {             
      var event = event || window.event;
      if ((event.button == "0" || event.button == "1") && !workTool) {
        if (workTool) { //如果用户在取词则不进行二次划词操作
            return 0;
        }
        if (document.getElementById("bblock") && !workTool) {
            document.body.removeChild(document.getElementById("bblock"));
        }
        workType = true;
        document.onmouseup = function(event) {
          if (workType) {
            workType = false;
            var txt = window.getSelection ? window.getSelection() : document.selection.createRange().text;
            txt = txt + "";
            txt = txt.replace(/^\s+|\s+$/g, "");
            if (txt != "") {
               creatDiv(txt);
            }
          }
        }
      }
    }
    
    function mousePosition(evt) { //当前鼠标位于页面位置
        evt = evt || window.event;
        var xPos = evt.pageX || evt.clientX || evt.offsetX || evt.x;
        var yPos = evt.pageY || evt.clientY || evt.offsetY || evt.y;
        return [xPos, yPos];
    }
    
    function creatDiv(str) {
        var arr = mousePosition();
        var newDiv = document.createElement('div'); //创建一个div元素;
        var newContent = document.createTextNode(str);
        newDiv.appendChild(newContent);
        newDiv.id = "bblock";
        newDiv.style.width = "200px";
        newDiv.style.background = "red";
        newDiv.style.position = "absolute";
        newDiv.style.left = arr[0] + 20 + "px";
        newDiv.style.top = arr[1]+ 0  + "px";
        newDiv.style.zIndex = "1000";
        var bo = document.body; //获取body对象
        bo.insertBefore(newDiv, bo.lastChild); //动态插入到body中
        bingDiv();
    }
    
    function bingDiv() {
        document.getElementById("bblock").onmouseover = function() {
            workTool = true;
        }
        document.getElementById("bblock").onmouseout = function() {
            workTool = false;
        }
    }
    

    效果:
    在这里插入图片描述

    取词区域的样式可以根据自己需求更改,我就懒一下啦~~~

    展开全文
  • 支持海词词典在Chrome浏览器中实现鼠标取词划词翻译 “海词词典”支持在Chrome浏览器中实现鼠标取词划词翻译。可在查看浏览器网页时快捷的帮助翻译陌生的单词。使用海词词典可快速查询单词,获得海词提供英汉、...
  • 以上是示范程序的例子 就是划词 然后呢 快速的选择性输入文字 适合文字办公较多的人群使用 也可以作为回帖机器人 QQ快速回复用(自行添加将图片加入QQ剪贴板的函数就好) 我也不知道怎么描述这个程序 我觉得可以应用...
  • 屏幕取词功能实现方法1 API_HOOK源码
  • 5. 新增了“ctrl指词即译”模式,让您取词更快一步!本插件支持Linux,MacOS系统!希望大家喜欢!有道词典Chrome划词插件官网:http://cidian.youdao.com/chromeplus/产品论坛:http://tie.youdao.com/tl_-537915498
  • 类似金山词霸的屏幕取词鼠标划词工具 C#版

    C# 屏幕取词 鼠标取词 非剪切板模式
    废话不说先看效果图:

    录制_2022_08_20_15_26_13_626


    取词工具页面在这里插入图片描述

    在这里插入代码片
    

    // 划词
    ChooseWord c = new ChooseWord();
    c.ChosenComplete += ChosenComplete;
    c.StartupMonitor();
    public void ChosenComplete(string s, int x, int y)
    {
    this.textBox2.Text = s;
    }
    如有需要可直接联系我

    展开全文
  • 6. 支持选择取词(亦称高亮取词,划词取词). 7. 支持命令行(Command Prompt)取词. 8. 支持各种标准Windows组件,如对话框、工具栏、菜单、编辑框、组合框、列表框、树型控件等. 9. 支持各种常见办公软件,如...
  • 6. 支持选择取词(亦称高亮取词,划词取词). 7. 支持命令行(Command Prompt)取词. 8. 支持各种标准Windows组件,如对话框、工具栏、菜单、编辑框、组合框、列表框、树型控件等. 9. 支持各种常见办公软件,如微软...
  • 支持划词 / 截图 / 网页翻译,辅助键、快捷键、悬浮取词。 英文单词会提供音标、详细释义、美音 / 英音朗读和词根,词根可以被点击,点击后即可查看词根的翻译结果。如果你需要,划词翻译也可以在划词后自动朗读被划...
  • 口袋划词翻译-crx插件

    2021-03-29 17:12:21
    可以背单词的划词翻译(关注公众号,开启收藏功能) 可以背单词的英汉划词翻译 方便的“收藏”功能(需登录,使用微信扫描二维码关注公众号即可登录),让你在阅读的过程中记录重要的单词,利用碎片时间掌握这些...
  • Mac 有道词典 无法取词划词

    千次阅读 2020-02-29 13:24:23
    有道词典右下角取词 划词消失了 因为软件更新,所以在AppStore里下载的有道词典没有这个功能 解决办法:删除,在官方网页上下载,进行安装 官方网址:http://cidian.youdao.com/index-mac.html ...

    有道词典右下角取词 划词消失了有道
    因为软件更新,所以在AppStore里下载的有道词典没有这个功能
    解决办法:删除,在官方网页上下载,进行安装
    官方网址:http://cidian.youdao.com/index-mac.html

    此外,如果开启划词,会与mac的command+c冲突,导致copy失败
    建议需要经常使用到command+c的伙伴把划词关掉!!

    展开全文
  • - 右键支持更多词典页面直达划词方式组合变幻无穷 - 支持四种划词方式,支持鼠标悬浮取词 - 查词面板可钉住可拖动可输入 - 钉住可以配置不同划词方式情境模式快速切换词典组合 - 每个情境模式下设置相互独立,快速...
  • 很多人抱怨 Goldendict 取词 “books” 居然查不到,它不会自己转换成 “book”,那不过是你没有正确设置而已,事实上这一点 Goldendict 利用构词法规则库可以做得极其强大。编辑-》词典-》词典来源-》构词法规则库...
  • 划词、鼠标选词、翻译这些都是很简单的事一般熟悉js鼠标事件都能搞定,而比较难的是怎么确定我们选中的词在哪个位置执行完翻译的结果该怎么定位,这个问题我在开发翻译插件时摸了个深坑,全网搜索不到可用方案,研究...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,849
精华内容 4,339
关键字:

划词取词

友情链接: t2_控件测试.zip