Como acelerar a principal funcionalidade do "Agent Ransack"

1

Esta questão está relacionada com um problema semelhante, em outro tipo de pesquisa app. ( Como acelerar a funcionalidade principal "Pesquisar tudo" )

O "Agent Ransack" é um software muito bom para pesquisar strings dentro de arquivos, mas falta uma coisa muito básica, que é "Pesquisar dentro do caminho atual". Atualmente, se você quisesse procurar os arquivos dentro da pasta atualmente aberta no Windows Explorer, digamos ... "C: \ Temp", você teria que manualmente ir até "C: \", então selecionar a pasta Temp, clique com o botão direito sobre ele, escolha a opção "Agent Ransack" e somente depois de fazer tudo o que você conseguiria o que precisava.

Existe alguma coisa que possa tornar este procedimento repetitivo menos doloroso?

    
por Lucas 23.10.2014 / 15:11

1 resposta

1

Eu pensei que deveria haver uma maneira melhor de fazer isso. Eu descobri que um criador desta ferramenta fez um esforço para suportar as Opções de Linha de Comando, e então eu criei um pequeno script AutoHotkey que encurta todo o procedimento descrito no primeiro parágrafo para um atalho de teclado.

Nota importante é que o script é testado apenas no Windows7 x64, por isso não posso garantir que funcionará no Windows8, WindowsXP, etc.

O script obviamente precisa que o AutoHotkey esteja instalado na máquina, e o script deve ser executado em cada inicialização do Windows (assim, a maneira mais fácil seria copiar o link para o script ou copiar todo o script na pasta Autostart) para que ele possa capturar o atalho do teclado. O atalho é definido para Win + Shift + F, mas pode ser facilmente modificado dentro do script. Uma coisa a ter em mente, o script depende do caminho para o arquivo Everything.exe estar sob este caminho: Executar, "C: \ Arquivos de programas \ Agent Ransack \ AgentRansack.exe"

Se estiver em outro lugar, modifique essa linha.

Ao escrever este script, usei como backbone, este script: link

que foi o único que encontrei em toda a web, que funcionou na minha máquina e retornou o caminho. Eu ajustei um pouco porque ele usava a palavra literal "Address" desnecessariamente e dependia do idioma local usado no sistema operacional do cliente, o que trazia uma grande limitação, e substituí-lo pela expressão regular para trabalhar em qualquer local (em teoria; )). Também o caminho tinha que ser formatado da maneira certa, então eu mudei isso. Depois disso, adicionei o código relevante para o aplicativo Agent Ransack e adicionei alguns comentários também.

Para "instalar" o script, você precisa salvá-lo em um arquivo de texto com a extensão .ahk e executá-lo para que ele possa residir em segundo plano.

Assim, para a experiência do usuário, quando estiver pronto, tudo o que você precisa fazer é pressionar o atalho (Win + Shift + F) com o Windows Explorer focado e o aplicativo Agent Ransack será iniciado com o caminho relevante inserido automaticamente na caixa de pesquisa. Tenha em mente que o Win + Ctrl + F padrão irá acontecer (isso é muito esperado e o comportamento desejado), se a janela atualmente focada no Windows não for exploradora. Se a página atual do explorador for aberta na página "Meu computador", esta chamada será totalmente ignorada.

Funciona muito bem, e espero que seja benéfico para outra pessoa, além de mim. Aproveite.

;////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\
;****************************************************
;*********                              *************
;*********    Written by:               *************
;*********                 soyo/Luk     *************
;*********                              *************
;*********   Search Ransack: ver1_0_0   *************
;*********                              *************    
;****************************************************
;\\\\\\\\\\\\\\\\\\\\\\\\\\
;////////////////////////////////////////////////////

#NoTrayIcon

SetTitleMatchMode RegEx
return

; Stuff to do when Windows Explorer is open
;
#IfWinActive ahk_class ExploreWClass|CabinetWClass

    ; When user presses Win+F in an explorer window, we Search Everything within this path
    ; If Other shortcut is required, it can be changed here
    ;
    #+f::
        SearchWithAgentRansackInPath()
    return
#IfWinActive


; Invokes Ransack Agent app with the current path as the path argument
; Note: expecting to be run when the active window is Explorer.
;
SearchWithAgentRansackInPath()
{
    ; This is required to get the full path of the file from the address bar
    WinGetText, full_path, A

    ; Split on newline ('n)
    StringSplit, word_array, full_path, 'n  

    ; Find and take the element from the array that contains address
    Loop, %word_array0%
    {
        FoundPrefixOccurance := RegExMatch(word_array%A_Index%, ".*:\*")
        if(FoundPrefixOccurance > 0)
        {        
            full_path := word_array%A_Index%
            break
        }
    }  

    ; strip to bare address
    full_path := RegExReplace(full_path, "^" ".*: ", "")

    ; Just in case - remove all carriage returns ('r)
    StringReplace, full_path, full_path, 'r, , all

    IfInString full_path, \
    {
        ; We remove the last backslash if there is any in the stipped path, this happens when the path is a root of a partition so
        ; for example "C:\"
        full_path := RegExReplace(full_path, "\$" "" )
        ; After we are sure we have a stripped path without the backslash at the end, now we can safely add a backslash
        full_path = %full_path%\        
        ; We run Agent Ransack with the path atribute
        Run, "C:\Program Files\Agent Ransack\AgentRansack.exe" -d "%full_path%"
    }
    else
    {
    }
}
    
por 23.10.2014 / 15:11