2

我正在尝试创建一个 .ahk 脚本,使用Notion让生活更轻松。我的同事到处乱扔 Notion 链接,我想要一个脚本来强制这些链接在应用程序中而不是在浏览器中打开。

我知道我需要以某种方式自动将链接从“https”更改为“notion”,但我的脚本没有像我预期的那样工作。

谁能帮我避免这个额外的步骤?提前致谢。下面的代码:

!LButton::
Send, ^c
Clipboard := StrReplace(Clipboard, "https", "notion", 1)
SendInput, %Clipboard%
return

编辑:如果链接已经在剪贴板中,我可以添加代码的第二部分按我想要的方式工作。运行此热键脚本时,我似乎无法正确自动将链接复制到剪贴板。

4

1 回答 1

1

我不知道 Notion 是什么,所以我很难给出最佳答案,但这个建议有望解决你的问题:

首先,在发送+然后使用复制的内容时最好使用ClipWait(docs) 。ctrlc

然后,您似乎缺少StrReplace()(docs)函数中的一个参数。您正在指定1参数OutputVarCount

然后您应该为您的发送命令指定文本发送模式以避免^+!#{}字符问题。
或者更好一点,您可以将文本设置到剪贴板并发送ctrl+ v
或者更好的是,启动应用程序并将链接作为参数传递,假设它支持它。

代码:

!LButton::
    Clipboard := ""
    SendInput, ^c
    ClipWait
    Clipboard := StrReplace(Clipboard, "https", "notion", , 1)
    SendInput, % "{Text}" Clipboard         ;send as input
    SendInput, ^v                           ;or paste
    Run, % "notion.exe """ Clipboard """"   ;or pass in as commandline argument
return

编辑:
另一种方法

!LButton::
    Clipboard := ""
    Click, Right    ;open right click menu
    Sleep, 50       ;wait a bit so the menu opens
    SendInput, e    ;shortcut for "copy to clipboard"
    ClipWait
    Clipboard := StrReplace(Clipboard, "https", "notion", , 1)
    MsgBox, % Clipboard
return
于 2021-05-29T18:48:50.350 回答