Я думал, что должен быть лучший способ сделать это. Я обнаружил, что создатель этого инструмента приложил усилия для поддержки параметров командной строки, и поэтому я создал симпатичный маленький скрипт AutoHotkey, который сокращает всю описанную процедуру до первого абзаца до одной комбинации клавиш.
Очень важно отметить, что скрипт протестирован только на Windows7 x64, поэтому я не могу гарантировать, что он будет работать на Windows8, WindowsXP и т.д.
Сценарию, очевидно, требуется, чтобы AutoHotkey был установлен на компьютере, и сценарий должен запускаться при каждой загрузке Windows (поэтому самый простой способ - скопировать ссылку на сценарий или скопировать весь сценарий в папку Autostart), чтобы он может захватить сочетание клавиш. Ярлык установлен для Win+Shift+F, но его можно легко изменить в скрипте. Следует иметь в виду, что сценарий зависит от пути к файлу Everything.exe, который должен находиться по этому пути: Запустите «C:\Program Files\Agent Ransack\AgentRansack.exe»
Если это где-то еще, измените эту строку.
При написании этого скрипта я использовал в качестве основы этот скрипт:https://superuser.com/a/205368/172360
которая была единственной, которую я мог найти во всей сети, которая работала на моей машине и возвращала путь. Я немного подправил его, потому что оно использовало буквальное слово "Address" без необходимости, и оно зависело от локального языка, используемого в клиентской ОС, что давало большие ограничения, и поэтому я заменил его регулярным выражением для работы в любой локали (теоретически;)). Также путь должен был быть правильно сформирован, поэтому я изменил это. После этого я добавил соответствующий код для приложения Agent Ransack, также добавил несколько комментариев.
Чтобы "установить" скрипт, вы должны сохранить его в текстовом файле с расширением .ahk и запустить так, чтобы он мог находиться в фоновом режиме.
Так что для удобства пользователя, как только вы все настроите, все, что вам нужно сделать, это нажать на ярлык (Win+Shift+F) с фокусом в проводнике Windows, и приложение Agent Ransack будет запущено с соответствующим путем, введенным автоматически в окно поиска. Имейте в виду, что по умолчанию Win+Ctrl+F произойдет (это очень ожидаемое и желаемое поведение), если текущее окно в окне не является проводником. Если текущая страница проводника открыта на странице "Мой компьютер", этот вызов будет полностью проигнорирован.
Это прекрасно работает, и я надеюсь, что это будет полезно для кого-то еще, кроме меня. Наслаждаться.
;////////////////////////////////////////////////////
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;****************************************************
;********* *************
;********* 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
{
}
}