我想运行一个ahk程序,然后使用一个快捷键实现这个程序,但是quicker中我找不到检查某个ahk文件是否已经在运行的步骤,就无法实现。

功能建议 · 686 次浏览
菏夜若棋 创建于 2023-05-14 10:25

想要实现选中文字,运行quicker检查是否后台已经运行了这个ahk文件,要是已经运行直接ctrlu,要是没有运行先打开这个ahk再ctrlu,结果找了半天只有检查程序有没有运行,没有检查某个ahk文件是否在后台运行的功能。想实现的功能是选中文字,然后ctrlu自动打开百度搜索并关闭之前已经打开的页面。

代码如下:

GetSelectedText() {
    ClipSaved := ClipboardAll
    Clipboard := ""
    Send, ^c
    ClipWait, 0
    Selection := Clipboard
    Clipboard := ClipSaved
    return Selection
}

; 当按下 Ctrl+U 时触发
^u::
{
    ; 获取选中的文本
    searchText := GetSelectedText()

    ; 检查是否有 Firefox 进程已经运行
    IfWinExist, ahk_exe firefox.exe
    {
        ; 如果已经运行,则将 Firefox 窗口置于最前面
        WinActivate, ahk_exe firefox.exe
        
        ; 使用 Firefox 的搜索选中文本快捷键
        Send, ^k
        Sleep, 500
        SendInput, %searchText%{Enter}
    }
    else
    {
        ; 如果没有运行,则直接用 Firefox 进程打开链接
        Run, firefox.exe -search %searchText%
        Sleep, 2000
    }
    
    ; 等待加载页面
    Sleep, 3000
}
return

 


回复内容
CL 2023-05-14 10:30
#1

涉及ahk的,应该所有的逻辑都在ahk里实现。ahk应该是可以持续自己在后台运行的,启动一次就可以了。

回复主贴