Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Слайдшоу в IrfanView по кнопке в ТС
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 08, 2010 03:03    Post subject: Reply with quote

Flasher wrote:
Хотя смысл в затирании "Text1 & " выглядит логичным.
Логичным, но неправильным.
Опечатался - надо оставить "Text1". Поправил пост выше.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Mar 08, 2010 03:12    Post subject: Reply with quote

Batya wrote:
Опечатался - надо оставить "Text1". Поправил пост выше.
Вот другое дело! Но всё-таки, извини, Batya, сейчас наверно совсем буду придирчивым: а можно как-то изменить скрипт, чтобы сортировка в Ирфане сопоставлялась с сортировкой в Тотале, а то если в Ирфане, например, стоит по-умолчанию "сортировать файлы по имени", а в Тотале как-то иначе, то правило добавлять в список только файлы, взятые из ТС от подкурсорного до последнего в панели и в заданной последовательности не соблюдается. Хотя, смею предположить, оно в скрипте и не задано.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 08, 2010 14:29    Post subject: Reply with quote

Flasher wrote:
а можно как-то изменить скрипт, чтобы сортировка в Ирфане сопоставлялась с сортировкой в Тотале
В принципе, конечно, можно. Но нужно поковыряться, используя TCScript.Helper. Попробую в ближайшее время сделать.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Mar 09, 2010 00:36    Post subject: Reply with quote

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

Готово:
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, 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
Чтобы не учитывать предыдущие файлы, думаю, знаешь, где убрать\поставить комментарий Wink
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Mar 09, 2010 12:09    Post subject: Reply with quote

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

Но.. толи у меня руки растут не оттуда, толи у меня с годами мозг атрофировался, толи ещё чего. Объясни, если сможешь. Когда я захожу в папку с путём, где присутствует каталог типа "Мои документы", "Мои рисунки", "My Documents"(остальные с системными названиями не проверял), то по нажатию появляется пустое окно Ирфана, но происходит это только когда я выполняю скрипт из Тотала(пробывал разные), установленном на systemdisk(то бишь С:\), при запуске же из ТС с флешки(у меня F:\) всё работает как часы. Перезапускаю комп, иду в другую винду(аналог, D:\), вызываю ТС с этого харда, вообщем-то по сути тоже systemdisk. И что? Работает отовсюду!! "Интересная" история..
Как говорил один из следователей "Колобков": -"Нитего не понимаю!" Confused
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Tue Mar 09, 2010 12:33    Post subject: Reply with quote

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

Выяснить просто. Создай директорию "c:\With Spaces\" и попробуй там. Если все пучком, значит, вторая причина. Если нет, значит первая.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Mar 09, 2010 14:08    Post subject: Reply with quote

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

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

Да, вопросик. В справке пишут, что %P%S при пробелах сам добавляет кавычки. Правильно ли думать, что в случае с %P%N происходит тоже самое? Где-то в "Кнопках" Captain Flint писал как можно это проверить с команды.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Mar 09, 2010 14:56    Post subject: Reply with quote

Flasher wrote:
В справке пишут, что %P%S при пробелах сам добавляет кавычки. Правильно ли думать, что в случае с %P%N происходит тоже самое?
Да.
Кнопка-шпаргалка:
Code:
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

Три пробела перед = — это символ табуляции


Last edited by Tol!k on Tue Mar 09, 2010 15:10; edited 1 time in total
Back to top
View user's profile Send private message
Rodny



Joined: 24 Jan 2007
Posts: 949
Location: Могилёв, Беларусь

Post (Separately) Posted: Tue Mar 09, 2010 15:06    Post subject: Reply with quote

Quote:
Где-то в "Кнопках" Captain Flint писал как можно это проверить с команды

Программулька ShowCmdLine покажет переданные параметры.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Tue Mar 09, 2010 15:10    Post subject: Reply with quote

Quote:
Правильно ли думать, что в случае с %P%N происходит тоже самое?
"Возвращаясь к напечатанному..."
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Mar 09, 2010 15:15    Post subject: Reply with quote

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

З.Ы.: .. Вот какие мы бестолковые - нарушили требование автора программы и еще удивляемся! Laughing
                            Вахмурка (с)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group