AutoHotkey: Backspace In Drive Root Opens My Computer
From TotalcmdWiki
(Redirected from Backspace In Drive Root Opens My Computer)
Usually pressing Backspace in drive root does nothing, this is to prevent landing in My Computer by mistake, when holding down the key too long. Some people may prefer to reach the highest hierarchy level instead.
$BS::
IfWinActive, ahk_class TTOTAL_CMD
{
WinGetText, PanelText, A
IfInString, PanelText, :\>
PostMessage 1075, 2122, , , ahk_class TTOTAL_CMD
Else
Send, {BS}
}
Else
Send, {BS}
Return
Here's a variant by ND, which ensures that the script is only launched in TC and when one of the TC panels is active (tested in TC 5.50 and TC 7.01 on WinXP SP2, and TC 7.5 on WinXP SP3).
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;! \brief pressing BackSpace in drive root should land in My Computer
;
; Assumes that the panel title-paths are accessible (TMyPanel5/TMyPanel9),
; and that BackSpace is used for cm_GoToParent (going up to the parent dir)
;
; Sends the cm_OpenDrives command when in a drive root
;
#IfWinActive, ahk_class TTOTAL_CMD
$BS::
WinGetActiveTitle, tcVersion ; Total Commander x.yy - UserName
tcVersion := SubStr( tcVersion, 17, 3 )
If(( tcVersion is float ) and ( tcVersion >= 7.5 ))
{
ControlGetText, tcPathR, TPathPanel1 ; new in TC 7.5
ControlGetText, tcPathL, TPathPanel2
}
Else
{
ControlGetText, tcPathL, TMyPanel9
ControlGetText, tcPathR, TMyPanel5
}
ControlGetFocus, tcFocus
SendInput, {BS}
; only when the actual TC panels are active
If( RegExMatch( tcFocus, "^TMyListBox1$" ) )
tcStatus := tcPathL
Else
If( RegExMatch( tcFocus, "^TMyListBox2$" ) )
tcStatus := tcPathR
Else
Return
If( RegExMatch( tcStatus, "^.:\\\*\.\*$" ) )
PostMessage, 1075, 2122 ; cm_OpenDrives
Return
Back to AutoHotkey
