1

Тема: AHK:Открыть выделенную папку средней кнопкой мыши

Доброго времени суток. Есть скрипт на открытие средней кнопкой мыши файла с расширением  "ahk", как бы туда добавить ещё открытие папки.

~*$vk4::
Sleep, 60
Click
WinClose ahk_class #32768 ahk_exe explorer.exe
If (path := Explorer_GetSel()) && (RegExMatch(path, "i)\.ahk$"))
Run C:\Program Files (x86)\AkelPad\AkelPad.exe %path%
Else
SendInput % "{" A_ThisHotkey "}"
Double:
Double := 0
return
#If
Explorer_GetSel()
{
if !(window := Explorer_GetWindow())
return ""
if (window="desktop")
{
ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progman
if !hwWindow
ControlGet, hwWindow, HWND,, SysListView321, A
ControlGet, files, List, % "Selected Col1",, ahk_id %hwWindow%
base := SubStr(A_Desktop,0,1)=="\" ? SubStr(A_Desktop,1,-1) : A_Desktop
Loop, Parse, files, `n, `r
{
path := base "\" A_LoopField
IfExist %path%
ret .= path "`n"
}
}
else
{
collection := window.document.SelectedItems
for item in collection
ret .= item.path "`n"
}
return Trim(ret,"`n")
}
Explorer_GetWindow()
{
WinGetClass class, % "ahk_id" hwnd := WinExist("A")
if (class ~= "(Cabinet|Explore)WClass")
{
for window in ComObjCreate("Shell.Application").Windows
if (window.hwnd==hwnd)
return window
}
else if (class ~= "Progman|WorkerW")
return "desktop"
}
return
OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

2 (изменено: svoboden, 2017-07-24 19:33:47)

Re: AHK:Открыть выделенную папку средней кнопкой мыши

MButton::
Sleep, 60
Click
WinClose ahk_class #32768 ahk_exe explorer.exe
If (path := Explorer_GetSel()) && (RegExMatch(path, "i)\.ahk$"))
Run C:\Windows\notepad.exe %path%
else If Explorer_GetSel()
    SendInput {Enter}
else
    SendInput {MButton}
return
#If
Explorer_GetSel()
{
if !(window := Explorer_GetWindow())
return ""
if (window="desktop")
{
ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progman
if !hwWindow
ControlGet, hwWindow, HWND,, SysListView321, A
ControlGet, files, List, % "Selected Col1",, ahk_id %hwWindow%
base := SubStr(A_Desktop,0,1)=="\" ? SubStr(A_Desktop,1,-1) : A_Desktop
Loop, Parse, files, `n, `r
{
path := base "\" A_LoopField
IfExist %path%
ret .= path "`n"
}
}
else
{
collection := window.document.SelectedItems
for item in collection
ret .= item.path "`n"
}
return Trim(ret,"`n")
}
Explorer_GetWindow()
{
WinGetClass class, % "ahk_id" hwnd := WinExist("A")
if (class ~= "(Cabinet|Explore)WClass")
{
for window in ComObjCreate("Shell.Application").Windows
if (window.hwnd==hwnd)
return window
}
else if (class ~= "Progman|WorkerW")
return "desktop"
}
return

3

Re: AHK:Открыть выделенную папку средней кнопкой мыши

Всё работает ,а как бы сделать что бы ещё и ярлыки папок открывало.

OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

4 (изменено: svoboden, 2017-05-02 04:40:12)

Re: AHK:Открыть выделенную папку средней кнопкой мыши

Вроде вопрос только про папки был. Ну ладно, тогда вместо этого: "else If Explorer_GetSel()", пиши: "else If WinActive("ahk_class Progman") or WinActive("ahk_class CabinetWClass")".

5

Re: AHK:Открыть выделенную папку средней кнопкой мыши

Доброго времени суток. Подскажите пожалуйста как добавить помимо "ahk" ещё и "txt" расширение.
Я так думаю что это нужно сделать здесь, но только ни как не пойму.

If (path := Explorer_GetSel()) && (RegExMatch(path, "i)\.ahk$"))
MButton::
Sleep, 60
Click
WinClose ahk_class #32768 ahk_exe explorer.exe
If (path := Explorer_GetSel()) && (RegExMatch(path, "i)\.ahk$"))
Run C:\Windows\notepad.exe %path%
else If Explorer_GetSel()
    SendInput {Enter}
else
    SendInput {MButton}
return
#If
Explorer_GetSel()
{
if !(window := Explorer_GetWindow())
return ""
if (window="desktop")
{
ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progman
if !hwWindow
ControlGet, hwWindow, HWND,, SysListView321, A
ControlGet, files, List, % "Selected Col1",, ahk_id %hwWindow%
base := SubStr(A_Desktop,0,1)=="\" ? SubStr(A_Desktop,1,-1) : A_Desktop
Loop, Parse, files, `n, `r
{
path := base "\" A_LoopField
IfExist %path%
ret .= path "`n"
}
}
else
{
collection := window.document.SelectedItems
for item in collection
ret .= item.path "`n"
}
return Trim(ret,"`n")
}
Explorer_GetWindow()
{
WinGetClass class, % "ahk_id" hwnd := WinExist("A")
if (class ~= "(Cabinet|Explore)WClass")
{
for window in ComObjCreate("Shell.Application").Windows
if (window.hwnd==hwnd)
return window
}
else if (class ~= "Progman|WorkerW")
return "desktop"
}
return
OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

6 (изменено: svoboden, 2017-10-30 05:16:51)

Re: AHK:Открыть выделенную папку средней кнопкой мыши

If (path := Explorer_GetSel()) && (RegExMatch(path, "i)\.ahk$")) or (RegExMatch(path, "i)\.txt$"))