实现效果:无论Obsidian是激活状态、非激活状态或是最小化状态,都能一键呼出QuickAdd。
前提
- OB已经启动。
- QuickAdd中设置了某个热键,比如下图 Fleeting note的热键是Ctrl+shift+Q
简版
;作者:sunwind1576157
;2021年12月14日
;最新版本:https://blog.csdn.net/liuyukuan/article/details/121942401
capslock & q::
WinActivate,ahk_exe Obsidian.exe
WinWaitActive,ahk_exe Obsidian.exe
send ^+q
return
高级版
- 针对隐藏状态的Obsidian也能呼出
- 对给Obsidian发送热键功能进行封装,更通用了。
- 增加了一键显示/隐藏Obsidian功能
注意:如需脚本启动Ob,请修改代码中app:=后面的路径为您本地的路径。
;作者:sunwind1576157
;2021年12月14日
;最新版本:https://blog.csdn.net/liuyukuan/article/details/121942401
;全局热键CapsLock + O,打开Ob设置
capslock & o::
sendKey("^!+o")
return
;全局热键CapsLock + Q,打开QuickAdd
capslock & q::
sendKey("^+q")
return
;全局热键CapsLock + Z
;一键显示隐藏ob的热键
capslock & z::
ShowOrHide()
return
;作者:sunwind1576157
;无论Ob最小化,还是隐藏,均能向Ob发送热键。
sendKey(key:="^+q")
{
DetectHiddenWindows On
SetTitleMatchMode,2
target:="Obsidian ahk_class Chrome_WidgetWin_1 ahk_exe Obsidian.exe"
app:="C:\Users\unicom\AppData\Local\Obsidian\Obsidian.exe"
if not WinExist(target)
run %app%
if Not DllCall("IsWindowVisible", "Ptr", WinExist(target))
{
WinShow,%target%
}
WinActivate,%target%
WinWaitActive,%target%
send %key%
return
}
;一键显示/隐藏ob
ShowOrHide(target:="Obsidian ahk_class Chrome_WidgetWin_1 ahk_exe Obsidian.exe")
{
DetectHiddenWindows On
SetTitleMatchMode,2
if DllCall("IsWindowVisible", "Ptr", WinExist(target))
{
WinHide
}
else
{
WinShow
WinActivate
}
}