Страница 1 из 3
Добавление выделенных файлов в список исключений
Добавлено: Чт июл 14, 2011 14:49
svshilo
Не нашёл на форуме подобного вопроса, может не правильно искал, хз.
1) Вопрос, можно ли сделать кнопку, чтобы при её нажатии выделенные в любой из панелей файлы добавлялись в список исключений без путей (чтобы на всех компах работало)?
Долго гадал в какой раздел запостить тему, то ли в кнопки, то ли сюда.
Предполагаю, что это можно сделать только с помощь скриптов, поэтом разместил тему здесь.
2) Как сделать кнопку, включающую/отключающую список исключений? Я нашёл только как открыть сам диалог настройки исключений cm_IgnoreConfig, а вот как эмулировать установку галочки "Исключить (не показывать) следующие файлы и каталоги:"
Добавлено: Чт июл 14, 2011 15:24
Flasher
1) сделать несложно (позже)
2) cm_SwitchIgnoreList
Добавлено: Чт июл 14, 2011 16:02
svshilo
Flasher писал(а):2) cm_SwitchIgnoreList
Спасибо..
Блин, и всего то.
Смотрел там же, где и cm_IgnoreList, а это вообще вменю Вид. Уже и забыл, что в виде есть этот пункт. Тупанул, надо было фильтр общий по Ignore врубить.
Добавлено: Чт июл 14, 2011 21:02
Flasher
svshilo
В общем-то, тут просто:
Код: Выделить всё
' Добавление имён выделенных файлов/папок в список исключений TC
' Параметры: %F "<путь к файлу-списку>"
' Пример: %F "%%COMMANDER_PATH%%\tcignore.txt"
'===========================================
L = CreateObject("WScript.Shell").ExpandEnvironmentStrings(WScript.Arguments(1))
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0),1)
Set List = .OpenTextFile(L,8,True)
List.Write TempFile.ReadAll
List.Close
End With
Без перезапуска TC фильтр не сработает. Нужен?
Хотя есть один способ без перезапуска, он мне не очень нравится, хоть и работает:
' Добавление имён выделенных файлов в список исключений TC с активацией фильтра
' Параметры: %F "<путь к файлу-списку>"
' Пример: %F "%%COMMANDER_PATH%%\tcignore.txt"
'===========================================
Dim WSH
Set WSH = CreateObject("WScript.Shell")
L = WSH.ExpandEnvironmentStrings(WScript.Arguments(1))
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0),1)
Set List = .OpenTextFile(L,8,True)
List.Write TempFile.ReadAll
List.Close
End With
WSH.Exec "%COMMANDER_PATH%\Utils\TCMC\TCMC.exe CM480"
WScript.Sleep 20
WSH.SendKeys "{TAB 2} {BS}+{TAB} ~"
Set WSH = Nothing
WScript.Quit
Путь, выделенный красным, к утилите
TCMC должен соответствовать скриптовому.
Добавлено: Пт июл 15, 2011 02:42
svshilo
Flasher писал(а):
Спасибо огромное, первый код работает.
Правда у меня уже были в игноре строки и при первом добавлении файлов с помощью скрипта он склелил последнюю мою строку и первую его, но это ерунда.
Для теста сделал:
Do.smerti.krasiva.2.sezon.04.serija.iz.13.2010.avi - это была моя строка
Do.smerti.krasiva.2.sezon.04.serija.iz.13.2010.aviPererabotka-Resiklo-DVDRip_2007_MVO.avi
IO.SYS
MSDOS.SYS
NTDETECT.COM
ntldr
pagefile.sys
MSOCache\
но все остальные, добавляемые с помощью скрипта, имена не склеиваются, всё нормально.
Перезагружать тотал не обязательно, достаточно нажать/отжать добавленную по вашему совету кн.
cm_SwitchIgnoreList.
Второй код пока не проверял. Чем он плох? Тем, что требует дополнительной утилиты?
Добавлено: Пт июл 15, 2011 03:52
Flasher
svshilo
Он плох тем, что там задействована имитация нажатия клавиш. Иногда это влечёт непредстказуемые действия, если работать в разных условиях. Утилита - не проблема, она для портабельности.
svshilo писал(а):достаточно нажать/отжать .. cm_SwitchIgnoreList
Действительно, что это я.

Завтра поправлю второй скрипт. Там достаточно проверять по ключу
IgnoreListFileEnabled, чтобы верно срабатывало.
Добавлено: Пт июл 15, 2011 04:23
svshilo
проверил второй скрипт - работает
- при нажатии кнопки он добавляет исключения, но каждый раз отключает сам игнор, приходится снова включать. В итоге тоже самое, что и в первом скрипте.
Первый скрипт меня очень даже устраивает, уже применяю, ещё раз спасибо. А можно в нём эмулировать откл/вкл cm_SwitchIgnoreList или чтобы он проверял значения этого ключа, и если отключен - включал?
Добавлено: Пт июл 15, 2011 04:54
Flasher
svshilo писал(а):но каждый раз отключает сам игнор
Странно. А если в третьей строке снизу убрать последний пробел?:
WSH.SendKeys "{TAB 2} {BS}+{TAB}~"
svshilo писал(а):А можно в нём эмулировать откл/вкл cm_SwitchIgnoreList или чтобы он проверял значения этого ключа, и если отключен - включал?
Я сейчас попытался это сделать с помощью TCFS2 -
Код: Выделить всё
WSH.Exec"%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe ""/ef tcm(2922) tcm(2922), test(tcini(Configuration,IgnoreListFileEnabled,#)=1) | tcm(2922)"""
, но почему-то это не срабатывает, завтра ещё поковыряюсь.
Добавлено: Пт июл 15, 2011 07:59
svshilo
пробел удалил, всё работает, только каспер вякает, подозревает рутшел, но это не страшно, добавил скрипт в исключения
Добавлено: Пт июл 15, 2011 12:47
svshilo
притащил домой TC Multiple Commands 0.12, здесь Смарт секьюрити стоит - сразу валит этоту прогу на корню и всё, говорит
addAdd_TC.Multiple.Commands_0.12.zip вероятно модифицированный Win32/Agent.IYZQUN троянская программа
Эта прога точно не с вирусом? А то и нод на неё гавкает, и каспер.
Добавлено: Пт июл 15, 2011 13:00
Flasher
svshilo
Советую проще относиться к антивирусам, они много на что ругаются, сигнатуры такие, поэтому дома я ими не пользуюсь.

Вот
здесь на утилиту много детектов, а Каспер таки ничего не нашёл. Данный вопрос обсуждать тут больше не советую. Этой утилитой пользуются многие толковые граждане (и не только с этого форума).
Добавлено: Пт июл 15, 2011 14:58
Avada
svshilo
Ругань некоторых антивирусов на TCMC.exe давно известна и на разных форумах рассматривалась многократно. Это ложные срабатывания, утилита абсолютно безопасна. Если интересны подробности, советую, например, почитать
здесь (первый мой пост).
Добавлено: Сб июл 16, 2011 00:02
Flasher
svshilo
Окончательный вариант такой:
Код: Выделить всё
' Добавление имён выделенных файлов в список исключений TC с активацией фильтра
' Параметры: %F "<путь к файлу-списку>"
' Пример: %F "%%COMMANDER_PATH%%\tcignore.txt"
'===========================================================
Dim WSH
Set WSH = CreateObject("WScript.Shell")
L = WSH.ExpandEnvironmentStrings(WScript.Arguments(1))
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0),1)
Set List = .OpenTextFile(L,8,True)
List.Write TempFile.ReadAll
List.Close
End With
WSH.Exec"%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef ""tcm(2922) tcm(2922), test(tcini(Configuration, IgnoreListFileEnabled, #)) | tcm(2922)"""
Set WSH = Nothing
WScript.Quit
В данном случае надо использовать
TCFS2 с соответствующим в скрипте путём.
Добавлено: Сб июл 16, 2011 03:07
svshilo
Flasher
Спасибо, всё работает, тему можно закрыть.
Чем этот вариант лучше предыдущего, тем, что здесь не используется эмуляция нажатий клавиш?
Добавлено: Сб июл 16, 2011 03:47
Flasher
svshilo
Помимо указанного нет мелькания окна, да и скорость срабатывания побыстрее. А имитация подходила только для одного режима (вкл./выкл.), поэтому я и предложил убрать пробел.