AutoHotkey: From FileSync open another TC instance with selected files

From TotalcmdWiki
Revision as of 03:00, 23 July 2008 by StatusQuo (talk | contribs) (fix: added double quotes for paths containing spaces)
Jump to: navigation, search
		; ////////////////////////////////////////////////////////////////////////////
		; // TC_Sync_OpenFolderInSecondTC.ahk  V0.11  (W) StatusQuo 2008
		; // http://ghisler.ch/board/viewtopic.php?t=19713
		; // 
		; // open another TC instance
		; // with the folders of the currently selected file in cm_FileSync
		; // via hotkey: Ctrl+Win+T
		; ////////////////////////////////////////////////////////////////////////////

#SingleInstance, Force
Return

#IfWinActive, ahk_class TCmpForm
^#t::	; Ctrl+Win+T
		; please adjust path here; %COMMANDER_PATH% is not available outside of TC
	sTCExe := "C:\totalcmd\TOTALCMD.EXE"
	Send, {F3}
	sLDirName := GetActiveTCListerPath()
	Send, +{F3}
	sRDirName := GetActiveTCListerPath()
	sRunStr := sTCExe
	if (sLDirName != "")
		sRunStr = %sRunStr% /L="%sLDirName%"
	if (sRDirName != "")
		sRunStr = %sRunStr% /R="%sRDirName%"
	if (sRunStr = sTCExe)
		Return
	Run, %sRunStr%
	Return
#IfWinActive

GetActiveTCListerPath()
{
	WinWaitNotActive, ahk_class TCmpForm,, 2	; wait for starting lister, timeout 2 seconds
	IfWinActive, ahk_class TCmpForm	; Lister hasn't started - no file on this panel side?
		Return
	WinGetActiveTitle, sWinTitle
	WinClose, %sWinTitle%
	iNamePos := (InStr(sWinTitle, "[", false, 0) + 1)
		; folder only
	; Return, % SubStr(sWinTitle, iNamePos, (InStr(sWinTitle, "\", false, 0) + 1) - iNamePos)
		; folder + file name
	Return, % SubStr(sWinTitle, iNamePos, StrLen(sWinTitle) - iNamePos)
}

;

Back to AutoHotkey