Страница 1 из 3
Фильтр отбора с пользовательским шаблоном
Добавлено: Пн апр 27, 2009 18:43
Dave
Господа, очень удобно в процессе работы с Тоталом оказалось пользоваться возможностью "Фильтра отбора файлов" с пользовательским шаблоном "Файлы не старше 1 часа". Возможно ли создать пользовательскую команду на это действие (скрипт, bat-файл, или еще что-либо проще)? Хотелось бы в итоге прийти к действию с двумя пользовательскими хоткеями - задать данный фильтр, снять все фильтры(ну с этим то проблем нет). Может кто уже заморачивался подобным вопросом? Спасибо.
ЗЫ. Цветовое выделение "файлов не старше 1 часа" не предлагать, уже работает... но не спасает

Добавлено: Пн апр 27, 2009 19:14
Worros
Ctrl+F12 , шаблон и выбрать тот же шаблон, что использовался для расцветки. Или я чего то не понимаю?
Добавлено: Пн апр 27, 2009 19:30
Dave
Worros писал(а):Ctrl+F12 , шаблон и выбрать тот же шаблон, что использовался для расцветки. Или я чего то не понимаю?
Это то понятно, хочется максимально быстро в одно нажатие вынесенной на панель кнопки (или один хоткей), так же как работает вынесенная Гислером отдельная команда cm_SrcExecs (Фильтр отбора - программы)
Добавлено: Пн апр 27, 2009 22:50
Dave
Посмотрев примеры скриптов, написанные пользователем Batya и используя суперметод copy-paste

вроде удалось сделать работающий скрипт
Код: Выделить всё
Set TCS = CreateObject("TCSCRIPT.Helper")
ShablonName = ">Не старше 1 часа"
TCS.SendCommand "cm_SrcUserDef"
TCS.SendKeystroke CStr(ShablonName)
TCS.SendKeystroke "{ENTER}"
Set TCS=Nothing
Wscript.Quit
Не уверен, что код 100% верен (я только сегодня с Helper-ом стал разбираться), но он работает.
Добавлено: Вт апр 28, 2009 23:44
Dave
Обнаружился неприятный глюк. Если текущая раскладка клавиатуры русская , то вместо строки ">Не старше 1 часа" посылается в скрипте строка ">ЮНе старше 1 часа". Т.е. символ ">" меняется на "Ю" и скрипт корректно не отрабатывает. Это как-нибудь лечится? Можно ли передать символ ">" как-нибудь кодом этого символа? Help..
Добавлено: Ср апр 29, 2009 15:46
Worros
Если честно, скриптами не пользуюсь и совет свой не проверял, но я бы попробовал избавиться от shablonname и вписать напрямую TCS.SendKeystroke ">Не старше 1 часа" , тем более что в примерах от автора Script Helpera CStr не фигурирует, он там явно лишний.
Добавлено: Ср апр 29, 2009 18:48
Dave
Worros писал(а):Если честно, скриптами не пользуюсь и совет свой не проверял, но я бы попробовал избавиться от shablonname и вписать напрямую TCS.SendKeystroke ">Не старше 1 часа" , тем более что в примерах от автора Script Helpera CStr не фигурирует, он там явно лишний.
Нет, к сожалению этот вариант не помогает
Добавлено: Ср апр 29, 2009 19:16
sa
Для выхода из положения использовал вместо ShablonName TCS.SendKeystroke "{TAB}{END}{ENTER}", переименовав шаблон в "Файлы не старше 1 часа", благодаря чему он оказался у меня последним ({END}) в списке шаблонов. Нечестно, но работает.
Добавлено: Ср апр 29, 2009 20:16
Dave
sa писал(а):Для выхода из положения использовал вместо ShablonName TCS.SendKeystroke "{TAB}{END}{ENTER}", переименовав шаблон в "Файлы не старше 1 часа", благодаря чему он оказался у меня последним ({END}) в списке шаблонов. Нечестно, но работает.
Отлично! Немного усовершенствуем вашу идею
Код: Выделить всё
Set TCS = CreateObject("TCSCRIPT.Helper")
TCS.Pause = 0
TCS.SendCommand "cm_SrcUserDef"
TCS.SendKeystroke "{TAB}"
TCS.SendKeystroke "Не старше 1 часа"
TCS.SendKeystroke "{ENTER}"
Set TCS=Nothing
Wscript.Quit
Работает. Можно сделать при желании еще кучу различных фильтров-скриптов, не забывая только то, что используем в названиях шаблонов исключительно русские символы, иначе будет косячить как с транслитом ">" в "Ю" [/quote]
Добавлено: Ср апр 29, 2009 21:16
sa
Dave писал(а):Работает.
По моему, в Вашем варианте возникают проблемы в случае, когда текущий язык английский, а шаблон "Не старше 1 часа" не первый в списке шаблонов...
Добавлено: Ср апр 29, 2009 22:08
Dave
sa писал(а):
По моему, в Вашем варианте возникают проблемы в случае, когда текущий язык английский, а шаблон "Не старше 1 часа" не первый в списке шаблонов...
Вы не поняли. Абсолютно не важно каким по счету шаблон в списке шаблонов и какой язык в системе (Неlper все равно все текстовые строки конвертирует в русскую раскладку). Здесь вся фишка в том, что команда
TCS.SendKeystroke "Не старше 1 часа" работает как быстрый поиск в списке (файлов, шаблонов и т.д.). А как раз ваша команда TAB и позволила попасть в этот список шаблонов, где этот быстрый поиск и работает.
Добавлено: Ср апр 29, 2009 22:28
sa
У меня при английской раскладке клавиатуры быстрый поиск в списке не работает и выбирается первый шаблон из списка. Это наглядно видно при установке TCS.Pause = 500. С русской же раскладкой всё нормально проходит.
Добавлено: Ср апр 29, 2009 22:58
Dave
Кажется я знаю где копать

Язык ввода по умолчанию у меня стоит "Английский", а у Вас видимо "Русский". Если поменяете - то и у Вас будет работать во всех раскладках. Да, и перезагрузить компьютер после смены языка ввода по умолчанию, естественно.
Добавлено: Чт апр 30, 2009 09:10
sa
Dave писал(а):Язык ввода по умолчанию у меня стоит "Английский"
У меня тоже "Английский". Простите за занудство, но Вы подтверждаете отсутствие проблемы при английской раскладке и не первом шаблоне в списке?
Добавлено: Чт апр 30, 2009 09:57
Dave
sa писал(а):
У меня тоже "Английский". Простите за занудство, но Вы подтверждаете отсутствие проблемы при английской раскладке и не первом шаблоне в списке?
Да, подтверждаю. У меня все работает при любых раскладках. А Ваша ситуация у меня четко моделируется если выбрать "Панель управления" > "Язык и региональные стандарты" > "вкладка Языки" > "кнопка Подробнее" > "раздел Язык ввода по умолчанию" > "Русский-русская" и перезагрузиться. Тогда действительно происходит как Вы пишите, при англ.раскладке скрипт тупо выбирает первый пункт списка шаблонов. На всякий случай - у меня Win XP Rus SP3, Тотal Commander 7.04a