2016-06-01 7 views
0

У меня есть открытый каталог:AutoHotkey перейти к определенной папке с активной папки, игнорируя полный путь

"C: \ Users \ Me \ Desktop \ Named_Folder"

===== =============================

под «Named_Folder» есть папка под названием «1» и под этой папке есть еще один, называемый «2».

Я хочу создать один письмо ярлык на, чтобы перейти от активного "Named_Folder" в папку "2", так что путь будет выглядеть следующим образом:

«C: \ Users \ Me \ Desktop \ Named_Folder \ 1 \ 2 "

Здесь я должен упомянуть, что в папке« 1 »и« 2 »всегда одно и то же имя, но« Named_Folder »всегда имеет другое имя.

Так что, возможно, я мог бы улучшить это название темы: Идите 2 каталога вниз из активной директории с одним ярлыком на букву?

ответ

1
#If WinActive("ahk_class CabinetWClass") ; explorer 

F1:: 
for window in ComObjCreate("Shell.Application").Windows 
try Fullpath := window.Document.Folder.Self.Path 
; IfExist, %Fullpath%\1\ 
    Run, %Fullpath%\1 
return 

F2:: 
for window in ComObjCreate("Shell.Application").Windows 
try Fullpath := % window.Document.Folder.Self.Path 
; IfExist, %Fullpath%\1\2\ 
    Run, %Fullpath%\1\2 
return 

#If 

EDIT: навигации в каталог без открытия нового окна:

#If WinActive("ahk_class CabinetWClass") ; explorer 

F1:: 
for window in ComObjCreate("Shell.Application").Windows 
try Fullpath := % window.Document.Folder.Self.Path 
IfExist, %Fullpath%\1\ 
    NavRun(Fullpath "\1") 
return 

F2:: 
for window in ComObjCreate("Shell.Application").Windows 
try Fullpath := window.Document.Folder.Self.Path 
IfExist, %Fullpath%\1\2\ 
    NavRun(Fullpath "\1\2") 
return 

#If 


; http://msdn.microsoft.com/en-us/library/bb774094 
GetActiveExplorer() { 
    static objShell := ComObjCreate("Shell.Application") 
    WinHWND := WinActive("A") ; Active window 
    for Item in objShell.Windows 
     if (Item.HWND = WinHWND) 
      return Item  ; Return active window object 
    return -1 ; No explorer windows match active window 
} 

NavRun(Path) { 
    if (-1 != objIE := GetActiveExplorer()) 
     objIE.Navigate(Path) 
    else 
     Run, % Path 
} 

https://autohotkey.com/board/topic/102127-navigating-explorer-directories/#entry634365

+0

Thnx много! Работает как шарм! Можно ли открыть одну и ту же папку «2» в том же окне? потому что теперь он открывает нужную папку в новом окне. – Curioucity

+0

Я нашел решение на https://autohotkey.com/board/topic/102127-navigating-explorer-directories/#entry634365. – user3419297

+0

thanx для обратной связи, которая работает! – Curioucity