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

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

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

Andriy_ko
Сообщения: 3
Зарегистрирован: Чт мар 04, 2010 13:24

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

Сообщение Andriy_ko »

В IrfanView для запуска слайдшоу нужно совершить кучу действий, поэтому возникла идея автоматизировать этот процесс.
Была сделана кнопка в Total Commander

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

TOTALCMD#BAR#DATA
C:\Program Files\Total Commander\ADD\i_view32.exe
/slideshow="%P"
C:\Program Files\Total Commander\ADD\Plugins\Slideshow.exe
слайдшоу из папки
C:\Program Files\Total Commander\ADD\

-1
Заходим в папку с картинками/фотками, жмем кнопку и получаем слайдшоу из изображений в этой папке (без подпапок)
НО слайдшоу запускается или с первого файла, или с последнего просмотренного в слайдшоу (настраивается в IrfanView)
КАК запустить это дело с произвольного файла под курсором??
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

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

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

...а я бы еще по вкусу добавил /closeslideshow /bf
С выбранного, по-моему, никак. Разве что прикрутить скрипт какой.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Andriy_ko
Сообщения: 3
Зарегистрирован: Чт мар 04, 2010 13:24

Сообщение Andriy_ko »

Batya писал(а):А не устроит по выделенным файлам с ключом /slideshow=%L :?:
Возникает другой вопрос, как автоматом выделить все от курсора до конца? хоткеем - Shift+End. Для этой комбинации можно назначить команду?
Вахмурка писал(а):...а я бы еще по вкусу добавил /closeslideshow /bf
Для универсальности - да. Такой пункт есть в настройках слайдшоу. Как бы еще принудительно отключать Запоминание номера последнего файла в слайдшоу.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Andriy_ko писал(а):Возникает другой вопрос, как автоматом выделить все от курсора до конца? хоткеем - Shift+End. Для этой комбинации можно назначить команду?
Нет. Насколько понимаю, тут действительно поможет только скрипт.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Кстати, скриптом можно создавать список файлов, который будет вначале содержать имена файлов от текущего до последнего, а потом от первого до текущего - вот и будет слайд-шоу всей папки с текущего файла.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Andriy_ko писал(а):КАК запустить это дело с произвольного файла под курсором??
Avada писал(а):Насколько понимаю, тут действительно поможет только скрипт.
vbs:

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

'==========================================================================
' Выполнение команды с указанием файла-списка, содержащего все файлы,
'   заданных расширений, начиная с указанного
'
' Параметры:
' {первый файл файла-списка}
'
' Пример параметров при вызове из 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, Folder, First, F, i, Find, L, Command, Text1, Text2
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
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)

Find = False
For Each F In FSO.GetFolder(Folder).Files
  If EXT.Exists(LCase(FSO.GetExtensionName(F.Path))) Then
    If LCase(First) = LCase(F.Path) Then Find = True
    If Find Then
      Text1 = Text1 & F.Path & vbNewLine
    Else
      Text2 = Text2 & F.Path & vbNewLine
    End If
  End If
Next

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

If ListDel Then FSO.DeleteFile L

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

Function GetPath(pPath)
  GetPath = WSH.ExpandEnvironmentStrings(pPath)
End Function
Нет, я не сплю. Я просто медленно моргаю.
Andriy_ko
Сообщения: 3
Зарегистрирован: Чт мар 04, 2010 13:24

Сообщение Andriy_ko »

Батя, спасибо! все работает так как надо!, только путь к ирфану поправил и для полного счастья добавил в расширения avi :)

Для правильной работы скрипта в настройках слайдшоу Irfan View нужно снять галочку с "Запоминать номер последнего файла при выходе" и "Начинать со слайда №1"
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Andriy_ko писал(а):все работает так как надо!
да нет, нужно доредактировать скрипт: файлы воспроизводятся, начиная с того, который под курсором, и до конца, а потом с начала и до этого файла. То есть скрипт воспроизводит все файлы в папке указанных форматов в скрипте, только с приоритетом начала проигрывания.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Andriy_ko писал(а):Для правильной работы скрипта в настройках слайдшоу Irfan View нужно снять галочку с "Запоминать номер последнего файла при выходе" и "Начинать со слайда №1"
У себя в версии 4.25 такого не нашёл.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):У себя в версии 4.25 такого не нашёл.
Клавиша W - там.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

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

Сообщение Flasher »

Batya писал(а):А как хочешь ты?
Чтобы производились файлы начиная с подкурсорного и до последнего в списке панели, а потом выключалось.(т.е. без файлов до подкурсорного)

Хотя это уже моя приблуда, согласен. Просто не так прочитал пост MVV. Скрипт работает правильно по заданной задаче. Но если всё таки удастся подредактировать под описанные мной нужды, было бы не плохо.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Flasher писал(а):Чтобы производились файлы начиная с подкурсорного и до последнего в списке панели, а потом выключалось.(т.е. без файлов до подкурсорного)
Измени

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

FSO.CreateTextFile(L, True).Write Text1 & Text2
на

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

FSO.CreateTextFile(L, True).Write Text1
Последний раз редактировалось Batya Пн мар 08, 2010 02:05, всего редактировалось 1 раз.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Batya писал(а):

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

FSO.CreateTextFile(L, True).Write Text2
Теперь начинает воспроизводить с первого файла в папке, сортируя по имени. Хотя смысл в затирании "Text1 & " выглядит логичным.
Ответить