Code: Select all
function TotalCommanderToSwitchDir(LeftPanelTargetDir: string): Boolean;
const
MY_UTF8_HEADER:RawByteString=AnsiChar($EF)+AnsiChar($BB)+AnsiChar($BF);
var
tcWnd: THandle;
DataStruct: TCopyDataStruct;
OutputString: RawByteString;
begin
tcWnd := FindWindow('TTOTAL_CMD', nil);
if tcWnd <> 0 then
begin
OutputString:=MY_UTF8_HEADER+UTF8Encode(LeftPanelTargetDir+#$0D)
DataStruct.dwData := Ord('C') + 256 * Ord('D');
DataStruct.cbData := length(OutputString)+1;
DataStruct.lpData := PAnsiChar(OutputString);
SendMessage(tcWnd, WM_COPYDATA, {self}Application.Handle, Integer(@DataStruct));
result := True;
end
else
result := False;
end;