Добавление выделенных файлов в список исключений
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Добавление выделенных файлов в список исключений Author: svshilo PostPosted: Thu Jul 14, 2011 14:49
    —
Не нашёл на форуме подобного вопроса, может не правильно искал, хз.
1) Вопрос, можно ли сделать кнопку, чтобы при её нажатии выделенные в любой из панелей файлы добавлялись в список исключений без путей (чтобы на всех компах работало)?
Долго гадал в какой раздел запостить тему, то ли в кнопки, то ли сюда.
Предполагаю, что это можно сделать только с помощь скриптов, поэтом разместил тему здесь.

2) Как сделать кнопку, включающую/отключающую список исключений? Я нашёл только как открыть сам диалог настройки исключений cm_IgnoreConfig, а вот как эмулировать установку галочки "Исключить (не показывать) следующие файлы и каталоги:"


Last edited by svshilo on Sat Jul 16, 2011 16:16; edited 1 time in total

#2:  Author: FlasherLocation: Москва PostPosted: Thu Jul 14, 2011 15:24
    —
1) сделать несложно (позже)
2) cm_SwitchIgnoreList

#3:  Author: svshilo PostPosted: Thu Jul 14, 2011 16:02
    —
Flasher wrote:
2) cm_SwitchIgnoreList

Спасибо..
Блин, и всего то.
Смотрел там же, где и cm_IgnoreList, а это вообще вменю Вид. Уже и забыл, что в виде есть этот пункт. Тупанул, надо было фильтр общий по Ignore врубить.

#4:  Author: FlasherLocation: Москва PostPosted: Thu Jul 14, 2011 21:02
    —
svshilo
В общем-то, тут просто:
Code:
'  Добавление имён выделенных файлов/папок в список исключений 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 фильтр не сработает. Нужен?
Хотя есть один способ без перезапуска, он мне не очень нравится, хоть и работает:
Quote:
' Добавление имён выделенных файлов в список исключений 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 должен соответствовать скриптовому.

#5:  Author: svshilo PostPosted: Fri Jul 15, 2011 02:42
    —
Flasher wrote:

Спасибо огромное, первый код работает.
Правда у меня уже были в игноре строки и при первом добавлении файлов с помощью скрипта он склелил последнюю мою строку и первую его, но это ерунда.
Для теста сделал:
Do.smerti.krasiva.2.sezon.04.serija.iz.13.2010.avi - это была моя строка
Quote:
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.

Второй код пока не проверял. Чем он плох? Тем, что требует дополнительной утилиты?

#6:  Author: FlasherLocation: Москва PostPosted: Fri Jul 15, 2011 03:52
    —
svshilo
Он плох тем, что там задействована имитация нажатия клавиш. Иногда это влечёт непредстказуемые действия, если работать в разных условиях. Утилита - не проблема, она для портабельности.
svshilo wrote:
достаточно нажать/отжать .. cm_SwitchIgnoreList
Действительно, что это я. Shocked Завтра поправлю второй скрипт. Там достаточно проверять по ключу IgnoreListFileEnabled, чтобы верно срабатывало.

#7:  Author: svshilo PostPosted: Fri Jul 15, 2011 04:23
    —
проверил второй скрипт - работает
- при нажатии кнопки он добавляет исключения, но каждый раз отключает сам игнор, приходится снова включать. В итоге тоже самое, что и в первом скрипте.

Первый скрипт меня очень даже устраивает, уже применяю, ещё раз спасибо. А можно в нём эмулировать откл/вкл cm_SwitchIgnoreList или чтобы он проверял значения этого ключа, и если отключен - включал?

#8:  Author: FlasherLocation: Москва PostPosted: Fri Jul 15, 2011 04:54
    —
svshilo wrote:
но каждый раз отключает сам игнор
Странно. А если в третьей строке снизу убрать последний пробел?: WSH.SendKeys "{TAB 2} {BS}+{TAB}~"
svshilo wrote:
А можно в нём эмулировать откл/вкл cm_SwitchIgnoreList или чтобы он проверял значения этого ключа, и если отключен - включал?
Я сейчас попытался это сделать с помощью TCFS2 -
Code:
WSH.Exec"%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe ""/ef  tcm(2922) tcm(2922), test(tcini(Configuration,IgnoreListFileEnabled,#)=1) | tcm(2922)"""
, но почему-то это не срабатывает, завтра ещё поковыряюсь.

#9:  Author: svshilo PostPosted: Fri Jul 15, 2011 07:59
    —
пробел удалил, всё работает, только каспер вякает, подозревает рутшел, но это не страшно, добавил скрипт в исключения

#10:  Author: svshilo PostPosted: Fri Jul 15, 2011 12:47
    —
притащил домой TC Multiple Commands 0.12, здесь Смарт секьюрити стоит - сразу валит этоту прогу на корню и всё, говорит

addAdd_TC.Multiple.Commands_0.12.zip вероятно модифицированный Win32/Agent.IYZQUN троянская программа

Эта прога точно не с вирусом? А то и нод на неё гавкает, и каспер.

#11:  Author: FlasherLocation: Москва PostPosted: Fri Jul 15, 2011 13:00
    —
svshilo
Советую проще относиться к антивирусам, они много на что ругаются, сигнатуры такие, поэтому дома я ими не пользуюсь. Wink Вот здесь на утилиту много детектов, а Каспер таки ничего не нашёл. Данный вопрос обсуждать тут больше не советую. Этой утилитой пользуются многие толковые граждане (и не только с этого форума).

#12:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Jul 15, 2011 14:58
    —
svshilo
Ругань некоторых антивирусов на TCMC.exe давно известна и на разных форумах рассматривалась многократно. Это ложные срабатывания, утилита абсолютно безопасна. Если интересны подробности, советую, например, почитать здесь (первый мой пост).


Last edited by Avada on Wed Apr 24, 2013 10:14; edited 1 time in total

#13:  Author: FlasherLocation: Москва PostPosted: Sat Jul 16, 2011 00:02
    —
svshilo
Окончательный вариант такой:
Code:
'  Добавление имён выделенных файлов в список исключений 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 с соответствующим в скрипте путём.

#14:  Author: svshilo PostPosted: Sat Jul 16, 2011 03:07
    —
Flasher
Спасибо, всё работает, тему можно закрыть.
Чем этот вариант лучше предыдущего, тем, что здесь не используется эмуляция нажатий клавиш?

#15:  Author: FlasherLocation: Москва PostPosted: Sat Jul 16, 2011 03:47
    —
svshilo
Помимо указанного нет мелькания окна, да и скорость срабатывания побыстрее. А имитация подходила только для одного режима (вкл./выкл.), поэтому я и предложил убрать пробел.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2, 3  Next  :| |:
Page 1 of 3

Powered by phpBB © 2001, 2005 phpBB Group