AutoHotkey: Backspace In Drive Root Opens My Computer: Difference between revisions

From TotalcmdWiki
Jump to navigation Jump to search
(Bugfix)
No edit summary
Line 12: Line 12:
  Else
  Else
   Send, {BS}
   Send, {BS}
Return
Here's a variant by '''ND''', which ensures that the script is only launched in TC and when one the TC panels is active (tested in TC 5.50 and TC 7.01)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;! \brief  pressing BackSpace in drive root should land in My Computer
;
;  Assumes that the status-bar is accessible (TMyPanel2),
;  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::
  ControlGetFocus, tcFocus
  ControlGetText, tcStatus, TMyPanel2
  Send, {BS}
  ; only when the actual TC panels are active
  If(  RegExMatch( tcFocus, "^TMyListBox(1|2)$" )  )
  {
    If(  RegExMatch( tcStatus, "^.:\\>$" )  )
      PostMessage, 1075, 2122  ; cm_OpenDrives
  }
  Return
  Return



Revision as of 11:45, 8 August 2007

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 the TC panels is active (tested in TC 5.50 and TC 7.01)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;! \brief  pressing BackSpace in drive root should land in My Computer
;
;  Assumes that the status-bar is accessible (TMyPanel2),
;  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::
  ControlGetFocus, tcFocus
  ControlGetText, tcStatus, TMyPanel2
  Send, {BS}

  ; only when the actual TC panels are active
  If(  RegExMatch( tcFocus, "^TMyListBox(1|2)$" )  )
  {
    If(  RegExMatch( tcStatus, "^.:\\>$" )  )
      PostMessage, 1075, 2122  ; cm_OpenDrives
  }
Return


Back to AutoHotkey