AutoHotkey: With Alt - \ always to root: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(modified to work also from within archives) |
||
Line 24: | Line 24: | ||
;! \brief pressing Alt+\\ should land in drive root rather than tab root | ;! \brief pressing Alt+\\ should land in drive root rather than tab root | ||
; | ; | ||
; Assumes that the | ; Assumes that the panel title-paths are accessible (TMyPanel5/TMyPanel9) | ||
; | ; | ||
; Computes the number of different parts separated by \\, | ; Computes the number of different parts separated by \\, | ||
Line 33: | Line 33: | ||
; only when the actual TC panels are active | ; only when the actual TC panels are active | ||
ControlGetFocus, tcFocus | ControlGetFocus, tcFocus | ||
If( RegExMatch( tcFocus, "^ | If( RegExMatch( tcFocus, "^TMyListBox1$" ) ) | ||
tcPath = TMyPanel9 | |||
Else | |||
If( RegExMatch( tcFocus, "^TMyListBox2$" ) ) | |||
tcPath = TMyPanel5 | |||
Else | |||
Return | |||
ControlGetText, tcStatus, %tcPath% | |||
RegExReplace( tcStatus, "[^\\>]+", "$1", tcBack ) | |||
If( tcBack > 0 ) | tcBack-- ; minus the drive root itself | ||
If( RegExMatch( tcStatus, "^.\\[^\\]" ) ) | |||
tcBack-- ; minus the server root for network drives | |||
If( tcBack > 0 ) | |||
Loop, %tcBack% | |||
PostMessage, 1075, 2002 ; cm_GoToParent | |||
Return | Return | ||
Revision as of 10:32, 6 September 2007
If you are working with 'softlocked' Tabs (locked but dir change allowed) it's most time useful to change with [Ctrl]+[\] to the root of the locked Tab instead root of the drive. You can achieve this with the key LockedGoToDriveRoot=0 in the wincmd.ini.
However, sometimes it is useful to go instead to the root of the drive. That's what this script is for:
;Alt \ leads to root of drive !\:: IfWinActive ahk_class TTOTAL_CMD { ; activate the command line PostMessage, 1075, 4003, , , ahk_class TTOTAL_CMD ; type cd \ sendraw, cd \ ; send it send, {ENTER} } return
Here's a variant by ND, which ensures that the script is only launched when one of the TC panels is active and which leaves the command-line history unmodified (tested in TC 5.50 and TC 7.01 on WinXP SP2)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;! \brief pressing Alt+\\ should land in drive root rather than tab root ; ; Assumes that the panel title-paths are accessible (TMyPanel5/TMyPanel9) ; ; Computes the number of different parts separated by \\, ; then goes-up the appropriate number of parent dirs (cm_GoToParent) ; #IfWinActive, ahk_class TTOTAL_CMD ~!\:: ; only when the actual TC panels are active ControlGetFocus, tcFocus If( RegExMatch( tcFocus, "^TMyListBox1$" ) ) tcPath = TMyPanel9 Else If( RegExMatch( tcFocus, "^TMyListBox2$" ) ) tcPath = TMyPanel5 Else Return ControlGetText, tcStatus, %tcPath% RegExReplace( tcStatus, "[^\\>]+", "$1", tcBack ) tcBack-- ; minus the drive root itself If( RegExMatch( tcStatus, "^.\\[^\\]" ) ) tcBack-- ; minus the server root for network drives If( tcBack > 0 ) Loop, %tcBack% PostMessage, 1075, 2002 ; cm_GoToParent Return
Back to AutoHotkey