AutoHotkey: With Alt - \ always to root: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 17: | Line 17: | ||
} | } | ||
return | return | ||
Here's a variant by '''ND''', which ensures that the script is only launched when one 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 status-bar is accessible (TMyPanel2) | |||
; | |||
; 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, "^TMyListBox(1|2)$" ) ) | |||
{ | |||
ControlGetText, tcStatus, TMyPanel2 | |||
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 | |||
{{translated|AutoHotkey: Mit ALT - \ ins Wurzelverzeichnis|AutoHotkey}} | {{translated|AutoHotkey: Mit ALT - \ ins Wurzelverzeichnis|AutoHotkey}} |
Revision as of 12:41, 8 August 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 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 status-bar is accessible (TMyPanel2) ; ; 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, "^TMyListBox(1|2)$" ) ) { ControlGetText, tcStatus, TMyPanel2 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