Слайдшоу в IrfanView по кнопке в ТС

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

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

Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher писал(а):Хотя смысл в затирании "Text1 & " выглядит логичным.
Логичным, но неправильным.
Опечатался - надо оставить "Text1". Поправил пост выше.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):Опечатался - надо оставить "Text1". Поправил пост выше.
Вот другое дело! Но всё-таки, извини, Batya, сейчас наверно совсем буду придирчивым: а можно как-то изменить скрипт, чтобы сортировка в Ирфане сопоставлялась с сортировкой в Тотале, а то если в Ирфане, например, стоит по-умолчанию "сортировать файлы по имени", а в Тотале как-то иначе, то правило добавлять в список только файлы, взятые из ТС от подкурсорного до последнего в панели и в заданной последовательности не соблюдается. Хотя, смею предположить, оно в скрипте и не задано.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher писал(а):а можно как-то изменить скрипт, чтобы сортировка в Ирфане сопоставлялась с сортировкой в Тотале
В принципе, конечно, можно. Но нужно поковыряться, используя TCScript.Helper. Попробую в ближайшее время сделать.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher писал(а):а можно как-то изменить скрипт, чтобы сортировка в Ирфане сопоставлялась с сортировкой в Тотале
Готово:

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

'==========================================================================
' Выполнение команды с указанием файла-списка, содержащего все файлы,
'   заданных расширений, начиная с указанного
'
' Параметры:
' {первый файл файла-списка}
'
' Пример параметров при вызове из TC:
' %P%N
'
' Автор - Batya
'==========================================================================
Option Explicit
'======== Изменяемые параметры ============================================
' Начало команды (до файла-списка)
Const Start   = """%ProgramFiles%\IrfanView\i_view32.exe"" /fs /bf /closeslideshow /slideshow="
' Окончание команды
Const Finish  = ""
' Файл-список
Const List    = "%Temp%\%Random%.txt"
' Удалять ли файл-список после выполнения команды
Const ListDel = True
' Расширения файлов для файла-списка
Dim EXT
Set EXT = CreateObject("Scripting.Dictionary")
EXT.Add "jpg",  ""
EXT.Add "bmp",  ""
EXT.Add "gif",  ""
EXT.Add "jpeg", ""
'==========================================================================
Dim FSO, WSH, TCS, Folder, First, F, Find, L, Command, Text1, Text2
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Set TCS = CreateObject("TCScript.Helper")
Randomize

First   = GetPath(WScript.Arguments(0))
Folder  = FSO.GetParentFolderName(First)
L       = GetPath(Replace(List, "%Random%", CStr(Int(Rnd*10^8)), 1, -1, 1))
Command = GetPath(Start) & """" & L & """" & GetPath(Finish)

TCS.SendCommand "cm_SelectAllFiles"
Find = False
For Each F In TCS.GetSrcSelectedFiles()
  F = Folder & "" & F
  If EXT.Exists(LCase(FSO.GetExtensionName(F))) Then
    If LCase(First) = LCase(F) Then Find = True
    If Find Then
      Text1 = Text1 & F & vbNewLine
    Else
      Text2 = Text2 & F & vbNewLine
    End If
  End If
Next
TCS.SendCommand "cm_ClearAll"

FSO.CreateTextFile(L, True).Write Text1 & Text2
'FSO.CreateTextFile(L, True).Write Text1
WSH.Run Command, 1, ListDel

If ListDel Then FSO.DeleteFile L

Set TCS = Nothing
Set EXT = Nothing
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit 0

Function GetPath(pPath)
  GetPath = WSH.ExpandEnvironmentStrings(pPath)
End Function
Используется "TCScript.Helper", поэтому не изменил пост со скриптом выше, а добавил новый - кому интересно, выбирайте какой вариант больше нравится.

Flasher
Чтобы не учитывать предыдущие файлы, думаю, знаешь, где убрать\поставить комментарий ;)
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):Готово:
Примного благодарен за выполненную работу! :)

Но.. толи у меня руки растут не оттуда, толи у меня с годами мозг атрофировался, толи ещё чего. Объясни, если сможешь. Когда я захожу в папку с путём, где присутствует каталог типа "Мои документы", "Мои рисунки", "My Documents"(остальные с системными названиями не проверял), то по нажатию появляется пустое окно Ирфана, но происходит это только когда я выполняю скрипт из Тотала(пробывал разные), установленном на systemdisk(то бишь С:\), при запуске же из ТС с флешки(у меня F:\) всё работает как часы. Перезапускаю комп, иду в другую винду(аналог, D:\), вызываю ТС с этого харда, вообщем-то по сути тоже systemdisk. И что? Работает отовсюду!! "Интересная" история..
Как говорил один из следователей "Колобков": -"Нитего не понимаю!" :?
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

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

Возможны две причины:
1. Все перечисленные тобой директории содержат пробел. Поиграйся с "лишними" кавычками вокруг пути и/или имени файла;
2. Все перечисленные тобой директории - "родные" директории винды. Разные программы могут с ними работать некорректно (например, известно, что Тотал "странно" работает с Рабочим столом).

Выяснить просто. Создай директорию "c:\With Spaces\" и попробуй там. Если все пучком, значит, вторая причина. Если нет, значит первая.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вахмурка
Спасибо за подключение. Я обнаружил проблему. Как и предполагалось, состоящую в моей криворукости. Сначала казалось проблема была с %P%N в Тоталах с C:\, добавил кавычки к параметрам в кнопках, потом вспомнил, что недавно менял кодировку файлов русских файлов ТС на UTF8, поменял обратно на ANSI, но кавычки в параметрах убрать забыл. А на той винде кнопку скопировал с флешечного Тотала, где кавычек не было, вот там всё и работало.
Ещё поковыряюсь с юникодностью, если сам не найду решение, доложу.

По поводу:
Вахмурка писал(а):2. Все перечисленные тобой директории - "родные" директории винды.
Они не родные, просто названия аналогичные.

Да, вопросик. В справке пишут, что %P%S при пробелах сам добавляет кавычки. Правильно ли думать, что в случае с %P%N происходит тоже самое? Где-то в "Кнопках" Captain Flint писал как можно это проверить с команды.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Flasher писал(а):В справке пишут, что %P%S при пробелах сам добавляет кавычки. Правильно ли думать, что в случае с %P%N происходит тоже самое?
Да.
Кнопка-шпаргалка:

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

TOTALCMD#BAR#DATA
%comspec% /k echo Wrong: &
echo "%%N"	= "%N" &echo "%%P%%N"	= "%P%N" &echo "%%M"	= "%M" &echo "%%T%%M"	= "%T%M" &echo "%%S"	= "%S" &echo "%%P%%S"	= "%P%S" &echo. &echo Right: &echo %%N	= %N &echo %%P%%N	= %P%N &echo %%M	= %M &echo %%T%%M	= %T%M &echo %%S	= %S &echo %%P%%S	= %P%S
WCMICONS.DLL,55
Кавычки у имён с пробелами


-1
Три пробела перед = — это символ табуляции
Последний раз редактировалось Tol!k Вт мар 09, 2010 14:10, всего редактировалось 1 раз.
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

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

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

Правильно ли думать, что в случае с %P%N происходит тоже самое?
"Возвращаясь к напечатанному..."
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k писал(а):Кнопка-шпаргалка:
Оперативненько). Благодарю! Удобная штука. Хотя я теперь уже навсегда запомнил.)
Вахмурка писал(а):"Возвращаясь к напечатанному..."
Да, то, что в статье подчёркнуто об этом. Спасибо за напоминание.

З.Ы.: .. Вот какие мы бестолковые - нарушили требование автора программы и еще удивляемся! :lol:
                    • [list][list][list]Вахмурка (с)
[/list][/list][/list]
Ответить