Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

在小小輸入法裡調用AutoHotkey v2腳本,以動態取得資料的作法(使用命令直通車 $GO)

$
0
0

新版的小小輸入法提供的命令直通車 $GO() 提供了管道(Pipe)的擴充功能,能在輸入法裡叫用外部程式而取得其輸出資料,因此我們便能透過這個功能在外部運算而取到動態資料了,例如下例就是在輸入法的候選窗裡取到明天、今天與昨天的日期,外部腳本使用AutoHotkey v2撰寫,程式簡單易懂,唯最後面的 FileAppend sDate , "*" 中的星號是標準輸出 (stdout)。

AutoHotkey V2 script get-date.ahk2 (副檔名可自行修改為.ahk) :

#Requires AutoHotkey v2.0
#SingleInstance Force

sDayDiff := A_Args[1]
iDayDiff := Integer(sDayDiff)

sFormat := A_Args[2]

sDateAfterDiff := DateAdd(A_Now, iDayDiff, "days")
sDate := ""
if (sFormat == "C") {
  sDate := FormatTime(sDateAfterDiff, "yyyy年MM月dd日")
} else if (sFormat == "R") {
  sYear := FormatTime(sDateAfterDiff, "yyyy")
  sYear := String(Integer(sYear) - 1911)
  sDate := sYear . "年" . FormatTime(sDateAfterDiff, "MM月dd日")
} else if (sFormat == "E") {
  sDate := FormatTime(sDateAfterDiff, "yyyy-MM-dd")
}

;A_Clipboard := sDate

FileAppend sDate , "*"

碼表裡的編碼:

#get-date.ahk2 日數 格式(C/E/R)
zdd $[明天(中式)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_1$_C)
zdd $[明天(西式)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_1$_E)
zdd $[明天(ROC)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_1$_R)

zdd $[今天(中式)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_0$_C)
zdd $[今天(西式)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_0$_E)
zdd $[今天(ROC)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_0$_R)

zdd $[昨天(中式)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_-1$_C)
zdd $[昨天(西式)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_-1$_E)
zdd $[昨天(ROC)]$GO(|c:\Program$_Files\autohotkey\autohotkey64.exe$_j:\ahk2\get-date.ahk2$_-1$_R)

執行結果:
gh

##

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


Viewing all articles
Browse latest Browse all 897

Trending Articles