发表回复 
能否实现 选择文字时 自动弹出tooltip
2013-03-08, 21 : 42
能否实现 选择文字时 自动弹出tooltip
能否实现:

鼠标或键盘选择文字 自动弹出tooltip提示 “选择(x个字)”

点击这个 tip 弹出 “复制、搜索、搜索...、分享到、页内查找”

简单,再简单一点儿
博客 http://blog.csdn.net/liuyukuan
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2013-03-08, 23 : 00
 
试试TT.ahk。官网搜索的到。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢zhqjsh
2013-03-11, 07 : 32
 
有些词典程序可以划词翻译,比如有道,划选了几个词就会跳出个小图标,原理应该一样,可以研究下,呵呵
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2013-03-18, 09 : 44
 
代码: (全选)
思路如下:
1.监控鼠标左键事件. 检测到鼠标左键弹起的时候就检查鼠标上次按下的时间(避免单击激活后续过程)
2.如果鼠标左键弹起时间与按下时间达到一定数值表示出现左键拖拽操作, 模拟执行Ctrl+c
3.尝试解析剪贴板中的内容(这一步最复杂)
4.如果符合条件就弹出tip,并且tip周围设定为激活坐标区域
5.如果检测到左键点击,获取鼠标所在位置,如果在激活区域就弹出其余几个tip.
6.同上如果再次检测左键点击,并且判断鼠标位置执行相应功能.
这是我能想到的不使用GUI窗口的办法, 稍微复杂点的就是对剪贴板中内容的分析,还有如何控制鼠标左键的检测功能不那么频繁,做到该检测的时候检测,不该检测的时候尽量不检测.

实际上还没那么老....
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢overpan
2013-03-21, 19 : 47
 
用StringSplit可行么
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2013-03-21, 20 : 28
 
谢谢各位帮助

简单,再简单一点儿
博客 http://blog.csdn.net/liuyukuan
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2014-09-24, 22 : 50
RE: 能否实现 选择文字时 自动弹出tooltip
代码: (全选)
~LButton::
MouseGetPos,oldmx,oldmy,oldwinid
Return

~LButton Up::
MouseGetPos,mx,my,winid
VarSetCapacity(rect, 16)
DllCall("GetClientRect", "uint", oldwinid, "uint", &rect)
rect_left  :=NumGet(rect,0, "int")
rect_top   :=NumGet(rect,4, "int")
rect_right :=NumGet(rect,8, "int")
rect_bottom:=NumGet(rect,12,"int")
If (winid=oldwinid And (mx<oldmx-xdrag Or mx>oldmx+xdrag Or my<oldmy-ydrag Or my>oldmy+ydrag))
If (oldmx>=rect_left And oldmx<=rect_right And oldmy>=rect_top And oldmy<=rect_bottom)
  Gosub,COPY
  
ticks=%A_TickCount%
difticks=%ticks%
EnvSub,difticks,%oldticks%
If difticks<400
If (oldmx>=rect_left And oldmx<=rect_right And oldmy>=rect_top And oldmy<=rect_bottom)
  Gosub,Copy
oldticks=%ticks%
Return
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢cixiplc
2014-10-09, 11 : 14
RE: 能否实现 选择文字时 自动弹出tooltip
楼上的,COPY 子程序段 没贴代码啊

简单,再简单一点儿
博客 http://blog.csdn.net/liuyukuan
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢hitman
2014-10-18, 04 : 11 (这个帖子最后修改于: 2014-10-18 09 : 28 by robertL.)
RE: 能否实现 选择文字时 自动弹出tooltip
代码: (全选)
~*LButton::
    MouseGetPos, oldmx, oldmy, oldwinid
    while GetKeyState("LButton")
    {
        if GetKeyState("LCtrl", "P")
        {
            MouseGetPos, x, y
            ToolTip, % "划词复制? " Abs(oldmx-x) " x " Abs(oldmy-y)
        } else ToolTip
        Sleep, 50
    }
    ToolTip
Return
~LButton Up::
if GetKeyState("LCtrl", "P")          ; 释放右键时若ctrl是按住的话才自动复制,可以先鼠标左键点住再按ctrl再拖选
{
    MouseGetPos, mx, my, winid
    if (winid = oldwinid)
    {
    VarSetCapacity(rect, 16)
    DllCall("GetClientRect", "uint", oldwinid, "uint", &rect)
    rect_left  := NumGet(rect, 0, "int")
    rect_top   := NumGet(rect, 4, "int")
    rect_right := NumGet(rect, 8, "int")
    rect_bottom:= NumGet(rect, 12, "int")
    If (mx<oldmx-xdrag Or mx>oldmx+xdrag Or my<oldmy-ydrag Or my>oldmy+ydrag)
        If (oldmx>= rect_left And oldmx <= rect_right And oldmy>= rect_top And oldmy<= rect_bottom)
        {
            Clipboardbak =
            Gosub, COPY
        }
    }
}
/*
ticks = %A_TickCount%        ; 计算机重启后经过的毫秒数
difticks = %ticks%
EnvSub, difticks, %oldticks%
If difticks < 400            ; 双击全选
    If (oldmx >= rect_left And oldmx <= rect_right And oldmy >= rect_top And oldmy <= rect_bottom)
        Gosub, Copy
oldticks = %ticks%
*/
Return

COPY:                        
clipall := Clipboardall
Clipboard =
Send, ^c
ClipWait, 2                ; 明确等待文本字符
if !Clipboard
  Clipboard := clipall
else
{
ToolTip, 「已复制」
SetTimer, RemoveToolTip, 2000
}
Return
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 2用户表示感谢cixiplc
2015-05-24, 02 : 50
RE: 能否实现 选择文字时 自动弹出tooltip
运行cixiplc脚本出错,找不到RemoveToolTip标签
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合