zoukankan      html  css  js  c++  java
  • 用AutoHotkey一键完成Xmind插入图片等功能

    F5一键添加超链接(类型为主题),常规步骤:Ctrl_h打开窗口,点击【主题】,激活光标到输入框。

    右Ctrl-i一键添加截取的图片,常规步骤是:打开画图→粘贴→保存图片为文件→Xmind里Ctrl-i→选择文件

    右Ctrl-f一键添加截取的图片为附件,常规步骤是:打开画图→粘贴→保存图片为文件→Xmind里点击【插入】→点击【附件】→选择文件

    保存图片用到了 IrfanView 的命令行功能。

    F5:: ;创建超链接并切换到主题
    Send, {Ctrl Down}h{Ctrl Up}
    WinWaitActive 修改主题的超链接
    ControlClick, X61 Y212
    Send {Shift Down}{Tab}{Shift Up} ;激活输入框
    Return
    
    >^i:: ;插入图片
    Send, {Ctrl Down}i{Ctrl Up}
    TmpImageFile := A_Desktop . "" . A_Now . ".png"
    hyf_saveClipImage2File(TmpImageFile, IrfanView)
    WinWaitActive Ahk_class #32770
    hyf_sendByClip(TmpImageFile, "{Enter}")
    Sleep, 1000
    FileDelete,% TmpImageFile
    Return
    
    >^f:: ;添加附件:默认添加剪切板图片,长按添加TC当前选中的文件
    Send, {Alt Down}i{Alt Up}a
    Err := hyf_keyWaitXSJ(A_ThisLabel)
    If Err ;长按RCtrl
    {
        hyf_TCPost(conTC3)
        Sleep, 100
        If FileExist(Clipboard)
            Send, {Shift Down}{Ins}{Shift Up}{Enter}
        Else
        {
            WinClose A
            hyf_tooltip("没复制到文件")
        }
    }
    Else
    {
        TmpImageFile := A_Desktop . "" . A_Now . ".png"
        hyf_saveClipImage2File(TmpImageFile, IrfanView)
        WinWaitActive Ahk_class #32770
        Sleep 200
        hyf_sendByClip(TmpImageFile, "{Enter}")
    }
    Return
    
    hyf_moveTo_Click(x, y, n := 1, m := "Window", t := 20) ;鼠标移动到x,y并点击n次  {{{3
    { ;m默认为Window坐标, t为移动后延迟点击
        tmp := A_CoordModeMouse
        If (tmp != m)
            CoordMode, Mouse, %m%
        MouseMove, x, y, 0
        Sleep, %t%
        If n
            Click %n%
        CoordMode, Mouse, %tmp%
    }
    
    hyf_saveClipImage2File(p, IrfanView) ;保存剪切板图片到p文件    {{{3
    { ;建议用32位
        RunWait,% IrfanView . " /clippaste /convert=" . p
    }
    
    hyf_sendByClip(str, k := "", mark := "") ;用剪切板发送字符串并按键(可选) {{{3
    { ;mark不为空,则不写入ClipTool
        If mark
        {
            ClipTool_MarkTmp := 1
            c := ClipboardAll
        }
        Clipboard := str
        While (Clipboard != str)
            Sleep 10
        Send, {Shift Down}{Ins}{Shift Up}
        Sleep 20
        If (k != "")
            Send %k%
        If mark
        {
            ClipTool_MarkTmp := 1
            Sleep 100
            Clipboard := c
        }
    }
    
    hyf_keyWaitXSJ(hk) ;等待热键的修饰键弹起,返回ErrorLevel(一般按住不放为1)   {{{3
    { ;仅支持<>^!#+开头的热键
        If (xsj := hyf_getXsjFromHotkey(hk))
        {
            KeyWait, %xsj%, T0.3
            Return ErrorLevel
        }
    }
    
    hyf_TCPost(n) ;TC中发送命令,2017复制文件名,2018为复制文件路径,2029复制目录路径 {{{3
    {
        PostMessage, 1075, %n%, 0, , Ahk_class TTOTAL_CMD
        If ErrorLevel ;WinHide时会失败
        {
            WinShow Ahk_class TTOTAL_CMD
            PostMessage, 1075, %n%, 0, , Ahk_class TTOTAL_CMD
        }
    }
    
    hyf_tooltip(str, t := 1, ExitScript := 0, x := "", y := "")  ;提示t秒并自动消失   {{{3
    {
        t *= 1000
        ToolTip, %str%, %x%, %y%
        SetTimer, hyf_removeToolTip, -%t%
        If ExitScript
        {
            Gui, Destroy
            Exit
        }
    }
    
    hyf_getXsjFromHotkey(hk)
    {
        hk := LTrim(hk, "~*")
        If InStr(hk, " & ")
            Return StrSplit(hk, A_Space)[1]
        obj := {"<": "L", ">":"R", "^":"Ctrl", "+":"Shift", "!":"Alt", "#":"LWin"}
        c1 := SubStr(hk, 1, 1)
        If (c1 = "<" || c1 = ">")
        {
            r1 := obj[c1]
            c2 := SubStr(hk, 2, 1)
            If InStr("^!#+", c2)
                Return r1 . obj[c2]
            Else
                Return 0
        }
        Else If InStr("^!#+", c1)
            Return obj[c1]
        Return 0
    }
    
    hyf_removeToolTip() ;清除ToolTip {{{3
    {
        ToolTip
    }
  • 相关阅读:
    Codeforces Round #251 (Div. 2) A
    topcoder SRM 623 DIV2 CatAndRat
    topcoder SRM 623 DIV2 CatchTheBeatEasy
    topcoder SRM 622 DIV2 FibonacciDiv2
    topcoder SRM 622 DIV2 BoxesDiv2
    Leetcode Linked List Cycle II
    leetcode Linked List Cycle
    Leetcode Search Insert Position
    关于vim插件
    Codeforces Round #248 (Div. 2) B. Kuriyama Mirai's Stones
  • 原文地址:https://www.cnblogs.com/hyaray/p/7508051.html
Copyright © 2011-2022 走看看