AutoHotkey的進階剪貼簿功能:WinClip類別

使用WinClip達成內建剪貼簿功能無法達到的功能。

內建的Clipboard

要取得被選取文字時必須先送出〔Ctrl+c〕將字串複製到系統剪貼簿。

^+g::
  current_clipboard = %Clipboard%   ; 把目前的剪貼簿內容存起來供後面還原
  Send ^c   ; 把選取字串用〔Ctrl+C〕存入剪貼簿
  ClipWait,1
  ; 下行使用Google執行搜尋動作,要搜尋的字串就是剪貼簿內容
  Run http://www.google.com.tw/search?hl=zh-TW&q=%Clipboard%
  Clipboard = %current_clipboard%   ; 還原先前的剪貼簿內容
  return

範例

在瀏覽器選取一個英文單字,按〔Ctrl+Alt+T〕後開啟英翻中網站,直接顯示單字的中文釋義

  • 困難點:如何在不影響現有系統剪貼簿而取得被選取文字?

選取文字若不存入剪貼簿則AutoHotkey無法取得內容。內建功能無法達成此需求,只能使用WinClip類別。

WinClip的使用

  1. 下載 WinClip
    1. 作者網站下載 WinClip.zip
    2. 解壓縮到本機
  2. 引入winclipAPI.ahk與WinClip.ahk
#include 解壓縮資料夾/WinclipAPI.ahk
#include 解壓縮資料夾/Winclip.ahk
  1. 有兩種使用WinClip函數的方法
    • 靜態方法:可想像為共用的唯一系統剪貼簿
    • 實例方法:可視為自訂的剪貼簿,不影響系統剪貼簿的內容
    • 範例:
  ; 靜態使用方法,不必定義WinClip實例
  WinClip.Copy() 
  text := WinClip.GetText()  ; 取得剪貼簿最後一項之內容

  ; 實例使用方法,必須宣告並定義WinClip,函數名稱多一個 i
  wc := new WinClip
  wc.iCopy()  ; 複製選取文字到專屬空間
  text := wc.iGetText()  ; 由當前實例的空間取出剪貼簿內容

選取文字

^!t::
  wc := new WinClip
  wc.iCopy()
  t := wc.iGetText()
  ;;MsgBox text=%t%
  Run https://tw.dictionary.search.yahoo.com/search?p=%t%&fr=sfp&iscqry=
  return

相關連結

test19.ahk

解說影片

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *