View previous topic :: View next topic |
Author |
Message |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Mon Apr 27, 2009 18:43 Post subject: Фильтр отбора с пользовательским шаблоном |
|
|
Господа, очень удобно в процессе работы с Тоталом оказалось пользоваться возможностью "Фильтра отбора файлов" с пользовательским шаблоном "Файлы не старше 1 часа". Возможно ли создать пользовательскую команду на это действие (скрипт, bat-файл, или еще что-либо проще)? Хотелось бы в итоге прийти к действию с двумя пользовательскими хоткеями - задать данный фильтр, снять все фильтры(ну с этим то проблем нет). Может кто уже заморачивался подобным вопросом? Спасибо.
ЗЫ. Цветовое выделение "файлов не старше 1 часа" не предлагать, уже работает... но не спасает  |
|
Back to top |
|
 |
Worros
Joined: 19 Jan 2007 Posts: 1123
|
(Separately) Posted: Mon Apr 27, 2009 19:14 Post subject: |
|
|
Ctrl+F12 , шаблон и выбрать тот же шаблон, что использовался для расцветки. Или я чего то не понимаю? |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Mon Apr 27, 2009 19:30 Post subject: |
|
|
Worros wrote: | Ctrl+F12 , шаблон и выбрать тот же шаблон, что использовался для расцветки. Или я чего то не понимаю? |
Это то понятно, хочется максимально быстро в одно нажатие вынесенной на панель кнопки (или один хоткей), так же как работает вынесенная Гислером отдельная команда cm_SrcExecs (Фильтр отбора - программы) |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Mon Apr 27, 2009 22:50 Post subject: |
|
|
Посмотрев примеры скриптов, написанные пользователем Batya и используя суперметод copy-paste вроде удалось сделать работающий скрипт
Code: |
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-ом стал разбираться), но он работает. |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Tue Apr 28, 2009 23:44 Post subject: |
|
|
Обнаружился неприятный глюк. Если текущая раскладка клавиатуры русская , то вместо строки ">Не старше 1 часа" посылается в скрипте строка ">ЮНе старше 1 часа". Т.е. символ ">" меняется на "Ю" и скрипт корректно не отрабатывает. Это как-нибудь лечится? Можно ли передать символ ">" как-нибудь кодом этого символа? Help.. |
|
Back to top |
|
 |
Worros
Joined: 19 Jan 2007 Posts: 1123
|
(Separately) Posted: Wed Apr 29, 2009 15:46 Post subject: |
|
|
Если честно, скриптами не пользуюсь и совет свой не проверял, но я бы попробовал избавиться от shablonname и вписать напрямую TCS.SendKeystroke ">Не старше 1 часа" , тем более что в примерах от автора Script Helpera CStr не фигурирует, он там явно лишний. |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Wed Apr 29, 2009 18:48 Post subject: |
|
|
Worros wrote: | Если честно, скриптами не пользуюсь и совет свой не проверял, но я бы попробовал избавиться от shablonname и вписать напрямую TCS.SendKeystroke ">Не старше 1 часа" , тем более что в примерах от автора Script Helpera CStr не фигурирует, он там явно лишний. |
Нет, к сожалению этот вариант не помогает |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2693
|
(Separately) Posted: Wed Apr 29, 2009 19:16 Post subject: |
|
|
Для выхода из положения использовал вместо ShablonName TCS.SendKeystroke "{TAB}{END}{ENTER}", переименовав шаблон в "Файлы не старше 1 часа", благодаря чему он оказался у меня последним ({END}) в списке шаблонов. Нечестно, но работает. |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Wed Apr 29, 2009 20:16 Post subject: |
|
|
sa wrote: | Для выхода из положения использовал вместо ShablonName TCS.SendKeystroke "{TAB}{END}{ENTER}", переименовав шаблон в "Файлы не старше 1 часа", благодаря чему он оказался у меня последним ({END}) в списке шаблонов. Нечестно, но работает. |
Отлично! Немного усовершенствуем вашу идею
Code: |
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] |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2693
|
(Separately) Posted: Wed Apr 29, 2009 21:16 Post subject: |
|
|
По моему, в Вашем варианте возникают проблемы в случае, когда текущий язык английский, а шаблон "Не старше 1 часа" не первый в списке шаблонов... |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Wed Apr 29, 2009 22:08 Post subject: |
|
|
sa wrote: |
По моему, в Вашем варианте возникают проблемы в случае, когда текущий язык английский, а шаблон "Не старше 1 часа" не первый в списке шаблонов... |
Вы не поняли. Абсолютно не важно каким по счету шаблон в списке шаблонов и какой язык в системе (Неlper все равно все текстовые строки конвертирует в русскую раскладку). Здесь вся фишка в том, что команда TCS.SendKeystroke "Не старше 1 часа" работает как быстрый поиск в списке (файлов, шаблонов и т.д.). А как раз ваша команда TAB и позволила попасть в этот список шаблонов, где этот быстрый поиск и работает. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2693
|
(Separately) Posted: Wed Apr 29, 2009 22:28 Post subject: |
|
|
У меня при английской раскладке клавиатуры быстрый поиск в списке не работает и выбирается первый шаблон из списка. Это наглядно видно при установке TCS.Pause = 500. С русской же раскладкой всё нормально проходит. |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Wed Apr 29, 2009 22:58 Post subject: |
|
|
Кажется я знаю где копать Язык ввода по умолчанию у меня стоит "Английский", а у Вас видимо "Русский". Если поменяете - то и у Вас будет работать во всех раскладках. Да, и перезагрузить компьютер после смены языка ввода по умолчанию, естественно. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2693
|
(Separately) Posted: Thu Apr 30, 2009 09:10 Post subject: |
|
|
Dave wrote: | Язык ввода по умолчанию у меня стоит "Английский" |
У меня тоже "Английский". Простите за занудство, но Вы подтверждаете отсутствие проблемы при английской раскладке и не первом шаблоне в списке? |
|
Back to top |
|
 |
Dave
Joined: 26 Apr 2009 Posts: 24
|
(Separately) Posted: Thu Apr 30, 2009 09:57 Post subject: |
|
|
sa wrote: |
У меня тоже "Английский". Простите за занудство, но Вы подтверждаете отсутствие проблемы при английской раскладке и не первом шаблоне в списке? |
Да, подтверждаю. У меня все работает при любых раскладках. А Ваша ситуация у меня четко моделируется если выбрать "Панель управления" > "Язык и региональные стандарты" > "вкладка Языки" > "кнопка Подробнее" > "раздел Язык ввода по умолчанию" > "Русский-русская" и перезагрузиться. Тогда действительно происходит как Вы пишите, при англ.раскладке скрипт тупо выбирает первый пункт списка шаблонов. На всякий случай - у меня Win XP Rus SP3, Тотal Commander 7.04a |
|
Back to top |
|
 |
|