AutoHotkey: Send a command to Total Commander

From TotalcmdWiki
Jump to navigation Jump to search

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