【AHK】在Obsidian中以选定日期生成链接

55 篇文章 6 订阅

定义一个热键 ctrl+q 会显示一个日历,然后根据选择日期 生成一个链接

#IfWinActive ahk_exe Obsidian.exe
^q::
answer := Dialog("请选择一个日期,本工具会以wiki链接形式输出", "good")
send [[%answer%]]
return
Gui, Add, MonthCal, vMyCalendar gButton
Gui, show
Dialog(Question, DefaultValue := "") {
    return new Dialog(Question, DefaultValue).Wait()
}
class Dialog
{
    __New(Question, DefaultValue) {
        Gui, New, +hwndhGui +LabelDialog.On_, Dialog
        this.hwnd := hGui
        Gui, Add, Text,, % Question
     
;        Gui, Add, MonthCal, hwndhEdit vMyCalendar gButton
        Gui, Add, MonthCal, hwndhEdit
        this.hEdit := hEdit
        Gui, Add, Button, gDialog.On_ButtonSendAnswer, 确定
        this.SaveStatus := False
        Gui, Show, w400 h400
        Dialog.Instances[hGui] := this
    }
    
    On_Close() {
        MsgBox, 4, % " ", Do you want to close the window?
        IfMsgBox, No
            Return 1
        Dialog.RemoveInstance(A_Gui)
    }

    On_ButtonSendAnswer() {
        this := Dialog.Instances[A_Gui]
        this.SaveStatus := True
        Dialog.RemoveInstance(this.hwnd)
        Gui, Cancel
    }
 
    RemoveInstance(hwnd) {
        Dialog.Instances.Delete(hwnd)
    }
 
    Wait() {
        dhw := A_DetectHiddenWindows
        DetectHiddenWindows, Off
        WinWaitClose, % "ahk_id " this.hwnd
        DetectHiddenWindows, % dhw

        If !this.SaveStatus
          Return "not saved"
        GuiControlGet, value,, % this.hEdit
        return value
    }

    __Delete() {
        Gui, % this.hwnd ":Destroy"
    }
}
#if
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值