AutoHotkey: Schicke einen Befehl an den Total Commander

Aus TCWikide
Zur Navigation springen Zur Suche springen

Dieses Script muss unter dem Namen SendTCCommand.ahk gespeichert werden, damit es funktioniert. Wenn das Script kompiliert wird (nachdem es gespeichert wurde einfach im Kontextmenü 'compile script' auswählen), ist der Aufruf noch einfacher und es funktioniert auch auf Rechnern, auf denen Autohotkey nicht installiert ist.

Hier kann man das kompilierte Script herunterladen. (Da dies ein kostenloser Webhoster ist, muss die Datei von Zeit zu Zeit aktiviert werden. Sollte die Datei also nicht mehr zur Verfügung stehen, bitte eine kurze Mail an sheepdog at gmx dot net mit dem Betreff Total Commander.)

; Script Name: SendTCCommand.ahk

; Sendet einen internen Befehl des Total Commander an eine TC Instanz.
; Kann zum Beispiel im Taskplaner genutzt werden.

 
; Gib den TC Befehl als Kommandozeielenparameter an, z.B.:
;   AutoHotkey.exe SendTCCommand.ahk cm_FtpNew
; Oder wenn das Script kompiliert ist:
;   SendTCCommand.exe cm_FtpNew
 

sCmdParam = %1%
SendTCCommand( sCmdParam )
Return

;
; SendTCCommand 0.2
;
; Zweck der Funktion:
;    Sendet einen der internen Total Commander Befehle (siehen Totalcmd.inc) 
;    an eine TC Instanz . 
;    Kann benutzt werden, um Total Commander zu automatisieren.
;
;
; Parameter:
;    xsTCCommand: Die internen Befehle des Total Commander, eine Liste ist hier:
;                 %COMMANDER_PATH%\TOTALCMD.INC
;                 zu finden.         
;    xbWait:      Ob die funktion warten soll bis TC den kommando ausführt
;
; Beispiel:
;	SendTCCommand( "cm_RereadSource" )
;

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
}




->Zurück zu AutoHotkey