AutoHotkey: Send a command to Total Commander

From TotalcmdWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The purpose of this script is to send an internal command to Total Commander (e.g. from a batch file). Useful to collect some tasks to automate them for usage with a Button.

A compiled version of this script is here available.

; Script name: SendTCCommand.ahk

; Sends a Total Commander command to a TC instance.
; Can be used from the scheduler for example.

; Specify the TC command as command line parameter for example:
;   AutoHotkey.exe SendTCCommand.ahk cm_FtpNew
; Or if the script is compiled:
;   SendTCCommand.exe cm_FtpNew

sCmdParam = %1%
SendTCCommand( sCmdParam )
Return

;
; SendTCCommand 0.2
;
; Function purpose:
;    Sends a Total Commander internal command to a TC instance.
;    It can be used to automate Total Commander.
;
; Parameters:
;    xsTCCommand: The Total Commander internal command, see the list here:
;                 %COMMANDER_PATH%\TOTALCMD.INC
;    xbWait:      Whether to wait for the command to execute,
;                 or just post it and return.
;
; Usage example:
;	SendTCCommand( "cm_RereadSource", False )
;

SendTCCommand( xsTCCommand, xbWait=1 )
{
	loop Read, %COMMANDER_PATH%\TOTALCMD.INC
	{
		StringSplit asCommands, A_LoopReadLine, =
		if (asCommands1 = xsTCCommand)
		{
			StringSplit asCommandsValues, asCommands2, `;
			Break
		}
	}

	if !(asCommandsValues1 > 0)
		return
	
	if (xbWait)
		SendMessage 1075, %asCommandsValues1%, 0, , ahk_class TTOTAL_CMD
	else
		PostMessage 1075, %asCommandsValues1%, 0, , ahk_class TTOTAL_CMD
}

Back to AutoHotkey