View previous topic :: View next topic |
Author |
Message |
Andriy_ko
Joined: 04 Mar 2010 Posts: 3
|
(Separately) Posted: Thu Mar 04, 2010 15:16 Post subject: Слайдшоу в IrfanView по кнопке в ТС |
|
|
В IrfanView для запуска слайдшоу нужно совершить кучу действий, поэтому возникла идея автоматизировать этот процесс.
Была сделана кнопка в Total Commander
Code: | 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)
КАК запустить это дело с произвольного файла под курсором?? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Mar 04, 2010 16:31 Post subject: |
|
|
А не устроит по выделенным файлам с ключом /slideshow=%L _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
|
Back to top |
|
|
Andriy_ko
Joined: 04 Mar 2010 Posts: 3
|
(Separately) Posted: Thu Mar 04, 2010 20:32 Post subject: |
|
|
Batya wrote: | А не устроит по выделенным файлам с ключом /slideshow=%L |
Возникает другой вопрос, как автоматом выделить все от курсора до конца? хоткеем - Shift+End. Для этой комбинации можно назначить команду?
Вахмурка wrote: | ...а я бы еще по вкусу добавил /closeslideshow /bf
| Для универсальности - да. Такой пункт есть в настройках слайдшоу. Как бы еще принудительно отключать Запоминание номера последнего файла в слайдшоу. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10268 Location: Россия, Саратов
|
(Separately) Posted: Thu Mar 04, 2010 20:49 Post subject: |
|
|
Andriy_ko wrote: | Возникает другой вопрос, как автоматом выделить все от курсора до конца? хоткеем - Shift+End. Для этой комбинации можно назначить команду? |
Нет. Насколько понимаю, тут действительно поможет только скрипт. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Sun Mar 07, 2010 22:23 Post subject: |
|
|
Andriy_ko wrote: | КАК запустить это дело с произвольного файла под курсором?? |
Avada wrote: | Насколько понимаю, тут действительно поможет только скрипт. |
vbs:
Code: | '==========================================================================
' Выполнение команды с указанием файла-списка, содержащего все файлы,
' заданных расширений, начиная с указанного
'
' Параметры:
' {первый файл файла-списка}
'
' Пример параметров при вызове из 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 |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Andriy_ko
Joined: 04 Mar 2010 Posts: 3
|
(Separately) Posted: Mon Mar 08, 2010 01:20 Post subject: |
|
|
Батя, спасибо! все работает так как надо!, только путь к ирфану поправил и для полного счастья добавил в расширения avi
Для правильной работы скрипта в настройках слайдшоу Irfan View нужно снять галочку с "Запоминать номер последнего файла при выходе" и "Начинать со слайда №1" |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 08, 2010 01:43 Post subject: |
|
|
Andriy_ko wrote: | все работает так как надо! | да нет, нужно доредактировать скрипт: файлы воспроизводятся, начиная с того, который под курсором, и до конца, а потом с начала и до этого файла. То есть скрипт воспроизводит все файлы в папке указанных форматов в скрипте, только с приоритетом начала проигрывания. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 08, 2010 01:45 Post subject: |
|
|
Andriy_ko wrote: | Для правильной работы скрипта в настройках слайдшоу Irfan View нужно снять галочку с "Запоминать номер последнего файла при выходе" и "Начинать со слайда №1" |
У себя в версии 4.25 такого не нашёл. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 08, 2010 01:46 Post subject: |
|
|
Batya wrote: | У себя в версии 4.25 такого не нашёл. | Клавиша W - там. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 08, 2010 01:48 Post subject: |
|
|
Flasher wrote: | нужно доредактировать скрипт |
Не понял. Ты написал, как скрипт работает сейчас. А как хочешь ты? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 08, 2010 01:53 Post subject: |
|
|
Batya wrote: | А как хочешь ты? | Чтобы производились файлы начиная с подкурсорного и до последнего в списке панели, а потом выключалось.(т.е. без файлов до подкурсорного)
Хотя это уже моя приблуда, согласен. Просто не так прочитал пост MVV. Скрипт работает правильно по заданной задаче. Но если всё таки удастся подредактировать под описанные мной нужды, было бы не плохо. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Mar 08, 2010 02:29 Post subject: |
|
|
Flasher wrote: | Чтобы производились файлы начиная с подкурсорного и до последнего в списке панели, а потом выключалось.(т.е. без файлов до подкурсорного) |
Измени Code: | FSO.CreateTextFile(L, True).Write Text1 & Text2 | на Code: | FSO.CreateTextFile(L, True).Write Text1 |
_________________ Нет, я не сплю. Я просто медленно моргаю.
Last edited by Batya on Mon Mar 08, 2010 03:05; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 08, 2010 02:43 Post subject: |
|
|
Batya wrote: | Code: | FSO.CreateTextFile(L, True).Write Text2 |
| Теперь начинает воспроизводить с первого файла в папке, сортируя по имени. Хотя смысл в затирании "Text1 & " выглядит логичным. |
|
Back to top |
|
|
|