View previous topic :: View next topic |
Author |
Message |
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Fri Jul 29, 2011 22:37 Post subject: |
|
|
Andrey_A wrote: | Я пользуюсь таким скриптом, может поможет, если необходимо подправьте под себя | Спасибо, вот так скрипт, буду тестить. Flasher wrote: | Прописать %N в параметрах.
Для новой кнопки не забыть очистить путь запуска | Все сделал работает, но опять интересная картина- просто папки и файлы выделяет, но когда отображено все содержимое, работать не хочет, а исходный скрипт скрипте при таком режиме выделяет только каталоги, а с файлами работать не хочет- может проблема в этом ? Andrey_A wrote: | Всвязи с проблемой Helpera (при большом к-ве файлов) использована утилита NirCmd.exe |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jul 29, 2011 22:50 Post subject: |
|
|
shveicar wrote: | но когда отображено все содержимое, работать не хочет | В каком смысле "отображено всё содержимое"? Содержимое чего? shveicar wrote: | а исходный скрипт скрипте при таком режиме выделяет только каталоги | При каком "таком" режиме?
shveicar wrote: | может проблема в этом ? | Эта проблема старой версии. В последней этого нет. |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jul 29, 2011 23:41 Post subject: |
|
|
Andrey_A
Это, конечно, лучше обсуждать в другом месте, но, честно говоря, при использовании инструмента IE в одном месте скрипта лучше его использовать и в другом.
А касаемо утилит Tol!k уже не раз предлагал ConClip.
Откровенно, совершенно не понятно, зачем для такой простой задачи такой громоздкий код.
Убрал из этого скрипта использование буфера. |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sat Jul 30, 2011 01:04 Post subject: |
|
|
Flasher wrote: | В каком смысле "отображено всё содержимое"? Содержимое чего? | Поясняю - захожу в текущей катаог, в нем множество вложенных каталогов с файлами, далее поиск искать все файлы с расширением(.wmv) Далее отобразить все найденое, и вот здесь для сортировки - пытаюсь применить скрипт. На данный момент в таком режиме, а также в режиме рекурсии- работает только плагин filex, А все остальные скрипты -(относящиеся к этой теме) работают в режиме простого выделения(то-есть, срабатывают только в режиме текущей панели, без вложенности) Возможно это связанно с портабельностью totala (честно говоря- первый раз такая ерунда) Helpera -обновил, но безрезультатно. На днях, проверю на виртуальной машине, со стандартным totalom. Скорее всего дело в этом. В любом случае спасибо Всем за помощь. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jul 30, 2011 01:23 Post subject: |
|
|
shveicar
В режиме DirBranch не работает, потому что в скрипте перебираются соответствующие элементы текущего каталога, а не элементы рекурсивной серии каталогов. К тому же в этом режиме используются относительные пути, а при загрузке выделения из буфера по команде cm_LoadSelectionFromClip тип путей должен соответствовать текущему режиму. Полные пути должны быть для стандартного режима, относительнгые для режима "без подкаталогов". Т.е. тут требуется выделять все файлы, выискивать отправной каталог во всех путях, потом формировать список путей относительно этого каталога и уже потом отправлять отфильтрованный список в буфер и загружать из него выделение. Это процесс довольно много ресурсов будет кушать и глюков, соответственно, может быть ещё больше, чем в приведённых вариантах. |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sat Jul 30, 2011 01:37 Post subject: |
|
|
Спасибо Flasher - за разъяснение, но для режима (найти и отобразить все) и DirBranch - прекрасно работает плагин filex. так что придумывать что -то еще, нет смысла. Еще раз благодарю, за проделанную работу. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jul 30, 2011 12:12 Post subject: |
|
|
Безоконный вариант (удобно вызывать с клавиатуры):
Code: | ' Выделение группы файлов/папок в соответствии с длиной имени файла/папки под курсором
' Необходима регистрация Script Helper ActiveX for TC
' Параметр: %N
'===============================================================
On Error Resume Next
N = WScript.Arguments(0)
With CreateObject("Scripting.FileSystemObject")
Set CD = .GetFolder(CreateObject("WScript.Shell").CurrentDirectory)
If .FileExists(N) Then
For Each F in CD.Files
If Len(F.Name) = Len(N) Then A = A & vbnewline & F
Next
ElseIf .FolderExists(N) Then
For Each F in CD.SubFolders
If Len(F.Name) = Len(N) Then A = A & vbnewline & F & "\"
Next
Else MsgBox "Установите курсор на файле или папке!", vbInformation
End If
End With
With CreateObject("TCScript.Helper")
T = .GetTextFromClip
.SetTextToClip(A)
.SendCommand 2033, True
.SetTextToClip(T)
End With
Wscript.Quit |
|
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sat Jul 30, 2011 14:13 Post subject: |
|
|
Flasher wrote: | Безоконный вариант (удобно вызывать с клавиатуры): | Спасибо - вариант очень удобный! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jul 31, 2011 18:55 Post subject: |
|
|
В общем, посмотрел, вроде ничего сложного. Т.е. теперь работает и в режимах "без подкаталогов" и "файлы на панель" после поиска.
Code: | ' Выделение группы файлов/папок в соответствии с длиной имени файла/папки под курсором
' Необходима регистрация Script Helper ActiveX for TC
' Параметры: %N "%P"
'===============================================================
On Error Resume Next
N = WScript.Arguments(0)
CD = WScript.Arguments(1)
If Err.Number > 0 Then
MsgBox "Установите курсор на файле или папке!", vbInformation
Err.Clear
Wscript.Quit
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
With CreateObject("TCScript.Helper")
T = .GetTextFromClip
.LockTC True
.SendCommand 524
If FSO.FileExists(N) Then .SendCommand 3302, True
If FSO.FolderExists(N) Then .SendCommand 3303, True
.SendCommand 2018, True
.SendCommand 524
For Each F in Split(.GetTextFromClip, vbnewline)
If Len(FSO.GetFileName(F)) = Len(FSO.GetFileName(N)) Then
If Len(CD) > 0 Then
A = A & vbnewline & Mid(F,Len(CD)+1)
Else A = A & vbnewline & F
End If
End If
Next
.SetTextToClip(A)
.LockTC False
.SendCommand 2033, True
.SetTextToClip(T)
End With
Set FSO = Nothing
Wscript.Quit | Предыдущий вариант не заменяю, т.к. тот срабатывает побыстрее. |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sun Jul 31, 2011 20:48 Post subject: |
|
|
Вот -это Скрипт, Отличная работа, Спасибо.
Flasher wrote: | Предыдущий вариант не заменяю, т.к. тот срабатывает побыстрее | Так ведь дело, не в скорости, а в функциональности! Да и потом, Я особой разницы, в скорости не заметил. Такой скрипт, может занять почётное место в коллекции инструментов Total Commander! |
|
Back to top |
|
|
|
|
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
|