Как вызвать диалог сравнения для нужных файлов?

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Как вызвать диалог сравнения для нужных файлов?

Сообщение Моторокер »

Как программно вызвать диалог сравнения для нужных файлов?

Команда cm_CompareFilesByContent поддерживает параметры?
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Нет, команда не имеет параметров. Чтобы использовать программно нужно сначала выделить файлы для сранения.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Если ничего не выделено, то сравнивается текущий файл в панели-источнике с ОДНОИМЕННЫМ файлом в приемнике.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

2 Скрипто-гуру :)

А может, сделать скриптик по алгоритму: (самому тоже часто приходится сравнивать разноимённые файлы)
1. Переход на другую панель.
2. Пометить там нужный файлик. Предпологается, что курсор ранее стоял на нужном файле.
3. Вернутся на исходную панель. Предпологается, что курсор тоже ранее стоял на нужном файле.
4. Включить "Сравнение по содержимому".
5. Переход на другую панель.
6. Снять всё выделение.
7. Вернутся на исходную панель.

Имхо, слепить проще простого.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

aLexx
не то
Пишу аналог диалога замены. Типа полный. Придётся ещё и нужные папки открывать.

Нужны либо параметры, либо мне фигнёй не заниматься :)
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
aLexx
Сообщения: 442
Зарегистрирован: Пн мар 14, 2005 08:33
Откуда: Новокузнецк
Контактная информация:

Сообщение aLexx »

А вот вопрос в тему:
Можно ли получить имя (и путь) файла (файлов) на неактивной панели?
Т.е., имя файла (каталога), где будет стоят курсор после нaжaтия "TAB".
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Скриптом можно. Скакнуть на другую панель, взять имя файла под курсором и обратно. :) Кроме того, если панель не в режиме миниатюр, то я думаю, что можно и через LB_GETTEXT. Только потом парсировать надо будет.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

[REQ] Cause Compare Tool for necessary files
Параметры явно напрашиваются.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

2Моторокер
Мысль, безусловно, хорошая. Я уже просил похожую вещь для cm_Copy, но, увы, безрезультатно.

Я пробовал выделить файлы программно через LB_SETSEL. Но наткнулся на две проблемы. Во-первых, это не работало в режиме миниатюр. Во-вторых, возможно какие-то файлы уже выделены. Тогда надо бы чеерз LB_GETSELITEMS взять ткущее выделение и сохранить в сторонке а потом восстановить. Но вдруг за время между сохранением и восстановлением что-то в директории изменится и индексы файлов будут уже другие?
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Раньше не замечал. Оказывается со всеми параметрами такие проблемы?
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Можно ли получить имя (и путь) файла (файлов) на неактивной панели?
Т.е., имя файла (каталога), где будет стоят курсор после нaжaтия "TAB".
Э-э, простите, а %М и %Т - это разве не оно?!
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Да, это оно. Я так понял вопрос - как получить это в программе?
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Как в программе не знаю, как в скрипте - знаю. Передаем скобку ("%М", "%Т") скрипту PowerPro, первая строка в коем

Код: Выделить всё

args TargetPath, TargetName
В С++, Паскале и пр. - обработка параметров командной строки стандартными средствами.
Могут возникнуть проблемы для путей с пробелами. Однако и эти проблемы можно решить.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

Ты говоришь о передаче параметров при старте? Тогда верно. %Т%М и вперед, с песней. А вот если во время работы программы ей понадобились эти имена...
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Ну, если во время работы программы курсор может гулять по панелям, тогда не знаю. Индекс файла на панели получить можно, но установить связь индекса с полным именем - задача зело трудоемкая и, возможно, в общем случае просто не решаемая.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Ответить