Руководство по WM_COPYDATA
Добавлено: Пн ноя 03, 2014 12:30
Существует ли в природе полное руководство по командам и параметрам, используемым в сообщении WM_COPYDATA при работе с TC?
Форум поддержки пользователей Total Commander
https://forum.wincmd.ru/
А где? На офсайте не нашёл, в HISTORY.TXT только 4е упоминания WM_COPYDATA.CaptainFlint писал(а):Dec
Можно скачать полную историю версий
Ссылку не подскажешь?CaptainFlint писал(а):Dec
Можно скачать полную историю версий.
Т.е. по сути есть только 3 "команды": GW, GA и EM. Я правильно понимаю?25.11.11 Added: Send WM_COPYDATA with dwData='G'+256*'W': Same as with 'G'+256*'A', but data is returned as UTF-16 Unicode. dwData of return is 'R'+256*'W' (32/64)
25.11.11 Added: Send WM_COPYDATA with dwData='G'+256*'A' and lpData pointing to command to get back WM_COPYDATA with various info. Supported commands A: Active side (returns L or R), or two byte command: first byte: L=left, R=right, S=source, T=target. Second byte: P=current path, C=list count, I=caret index, N=name of file under caret. dwData of return is 'R'+256*'A' (32/64)
09.12.07 Added: Unicode support in WM_COPYDATA: prepend UTF8 byte order marker before each path containing Unicode characters (pure ANSI paths are passed as ANSI) -> /O switch now supports Unicode too
17.09.06 Added: Send WM_COPYDATA with dwData='E'+256*'M' and lpData pointing to em_xyz internal command (0-terminated) to execute that command. Accepts parameters separated by a space
12.04.06 Added: Support for environment variables in paths received via WM_COPYDATA from other programs
Первый путь — левая панель, второй — правая; любой из них может быть опущен (но симмвол-разделитель \x0d должен оставаться). Флаги после первого нулевого символа опциональны. "S": трактовать пути как исходный/целевой; "T": открывать пути в новых вкладках."c:\\test1\x0dc:\\test2\x00ST\x00"
Там не только для AHK примеры.Flasher писал(а):На англофоруме есть примеры для AHK.
Да я уже видел, не стал акцентировать. Dec не вчера "родился", чтобы самостоятельно оценить.MVV писал(а):Там не только для AHK примеры.
Маркер? Т.е. просто всегда дописывать \xEF\xBB\xBF перед каждым путём?09.12.07 Added: Unicode support in WM_COPYDATA: prepend UTF8 byte order marker before each path containing Unicode characters (pure ANSI paths are passed as ANSI)
Код: Выделить всё
["\xEF\xBB\xBF"] "\x0D" ["\xEF\xBB\xBF"] ["<right_path>"] "\x00" ["S"] ["T"] "\x00"Да. Перед левым и перед правым свои маркеры, указывающие, что конкретно этот путь в UTF-8. На схеме показаны оба, и оба необязательные.Маркер? Т.е. просто всегда дописывать \xEF\xBB\xBF перед каждым путём?
Если нет пути для какой-то панели, то и её маркер не нужен. Не знаю, что будет, если маркер будет, а пути не будет, хотя по логике он тогда должен игнорироваться, т.к. путь все равно пуст. Главное, чтобы в команде были символ конца строки и два нулевых байта.Если нет, например, пути для левой панели, тогда так?
Да, все элементы в квадратных скобках можно выкидывать, остальное писать надо.В случае отсутствия флагов S/T, команда должна заканчиваться двумя \x00?