В IrfanView для запуска слайдшоу нужно совершить кучу действий, поэтому возникла идея автоматизировать этот процесс.
Была сделана кнопка в Total Commander
Заходим в папку с картинками/фотками, жмем кнопку и получаем слайдшоу из изображений в этой папке (без подпапок)
НО слайдшоу запускается или с первого файла, или с последнего просмотренного в слайдшоу (настраивается в IrfanView) КАК запустить это дело с произвольного файла под курсором??
Andriy_ko писал(а):Возникает другой вопрос, как автоматом выделить все от курсора до конца? хоткеем - Shift+End. Для этой комбинации можно назначить команду?
Нет. Насколько понимаю, тут действительно поможет только скрипт.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Кстати, скриптом можно создавать список файлов, который будет вначале содержать имена файлов от текущего до последнего, а потом от первого до текущего - вот и будет слайд-шоу всей папки с текущего файла.
'==========================================================================
' Выполнение команды с указанием файла-списка, содержащего все файлы,
' заданных расширений, начиная с указанного
'
' Параметры:
' {первый файл файла-списка}
'
' Пример параметров при вызове из 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
Батя, спасибо! все работает так как надо!, только путь к ирфану поправил и для полного счастья добавил в расширения avi
Для правильной работы скрипта в настройках слайдшоу Irfan View нужно снять галочку с "Запоминать номер последнего файла при выходе" и "Начинать со слайда №1"
да нет, нужно доредактировать скрипт: файлы воспроизводятся, начиная с того, который под курсором, и до конца, а потом с начала и до этого файла. То есть скрипт воспроизводит все файлы в папке указанных форматов в скрипте, только с приоритетом начала проигрывания.
Andriy_ko писал(а):Для правильной работы скрипта в настройках слайдшоу Irfan View нужно снять галочку с "Запоминать номер последнего файла при выходе" и "Начинать со слайда №1"
Чтобы производились файлы начиная с подкурсорного и до последнего в списке панели, а потом выключалось.(т.е. без файлов до подкурсорного)
Хотя это уже моя приблуда, согласен. Просто не так прочитал пост MVV. Скрипт работает правильно по заданной задаче. Но если всё таки удастся подредактировать под описанные мной нужды, было бы не плохо.
Flasher писал(а):Чтобы производились файлы начиная с подкурсорного и до последнего в списке панели, а потом выключалось.(т.е. без файлов до подкурсорного)