个人主要为了快速摘录,还有不少问题,水平有限,拼凑了半天只能做到这个效果,希望抛砖引玉,有愿意的能完善一下。使用时需注意以下问题(这些也是需要改进和完善的地方):
- 因为脚本是在后台自动检索当前粘贴板中的内容,只要剪贴板正在处理:Video_2021-11-27_180208.wmv…
正在处理:Video_2021-11-27_180208.wmv…
有内容就自动发到Obsidian的指定文件中,是无差别的复制粘贴; - 发送到Obsidian时焦点会自动定位到Obsidian,为避免自动频繁切换窗口影响体验,最好使用Win+左、右键将源文件和Obsidian并列在屏幕的两边。
3.可以增加快捷键来快速启动、抑制脚本运行,以避免不需要大量复制粘贴时对其它工作造成干扰
~LButton:: ;左键拖选文字: 复制
cos_mousedrag_treshold := 20 ; pixels
MouseGetPos, cos_mousedrag_x, cos_mousedrag_y
win1 := WinActive(“A”)
KeyWait LButton
MouseGetPos, cos_mousedrag_x2, cos_mousedrag_y2
win2 := WinActive(“A”)
WinGetClass cos_class, A
if(((abs(cos_mousedrag_x2 - cos_mousedrag_x) > cos_mousedrag_treshold
or abs(cos_mousedrag_y2 - cos_mousedrag_y) > cos_mousedrag_treshold)) and win1 = win2
and cos_class != “ConsoleWindowClass”)
{
;SendInput ^c
}
If errorlevel=0
GoSub, Routine
Return
Routine:
{
ifwinactive ahk_class CabinetWClass
{
return
}
clipboard =
send ,^c
ClipWait,1
StringLen, cliplen, clipboard
if cliplen > 0
{
;避免没有内容时还调用
;将复制的内容发送到指定程序中
;run obsidian://log
run obsidian://open?vault=IT&file=收集板
sleep 100
send ,^v
;send %clipboard%
send {enter}
clipboard =
cliplen =0
}
}
return