Страница 2 из 3

Добавлено: Чт апр 30, 2009 10:48
DeathStalker
Проблему с раскладками можно решить если название шаблона будет только из цифр, ведь они при любой раскладке работают :wink:
Минус только в том, что название из цифр плохо передает смысл :(

Добавлено: Чт апр 30, 2009 11:12
Dave
DeathStalker писал(а):Проблему с раскладками можно решить если название шаблона будет только из цифр, ведь они при любой раскладке работают :wink:
Минус только в том, что название из цифр плохо передает смысл :(
Хороший вариант, у кого проблемы с раскладками
А главное, можно имя шаблона оставить прежнее, только перед ним поставить уникальный цифровой код , к примеру шаблон
"1008 Не старше 1 часа"
А в скрипте прописать строку TCS.SendKeystroke "1008"
вместо строки TCS.SendKeystroke "Не старше 1 часа"

Добавлено: Пт май 01, 2009 12:33
sa
Dave писал(а):На всякий случай - у меня Win XP Rus SP3, Тотal Commander 7.04a
У меня Win XP Professional SP2, Тотal Commander 7.04a. Наверное сказывается различие в ОС. Для себя проблему с раскладками решил добавлением в скрипт сочетания клавиш для переключения на русский язык (когда-то назначил в региональных стандартах на Ctrl+Shift+2) и последующего возврата на английский (Ctrl+Shift+1).
Получилось что-то вроде TCS.SendKeystroke "{TAB}^+2Файлы не старше 1 часа^+1{ENTER}". Минус такого способа - "несанкционированное" переключение языка ввода с русского на английский, но по мне это скорее плюс. Обратный эффект(переключение с английского на русский) будет, если не добавлять в конце Ctrl+Shift+1.

Добавлено: Пн май 04, 2009 10:51
Batya
sa писал(а):Минус такого способа - "несанкционированное" переключение языка ввода с русского на английский
Лучше использовать не "горячие клавиши", а функцию SetLocale:

Код: Выделить всё

currentLocale = SetLocale("ru") 'При желании можно SetLocale("en-us")
TCS.SendKeystroke "Файлы не старше 1 часа"
SetLocale(currentLocale)

Добавлено: Чт май 06, 2010 13:49
sa
В другой теме нашлось простое решение в виде кнопки, либо пользовательской команды, в которой используется команда cd с фильтром

Код: Выделить всё

cd >Файлы не старше 1 часа

Добавлено: Чт май 06, 2010 14:32
Andrey_A
В этой теме тоже есть скрипты обсуждаемой вами теме
http://forum.wincmd.ru/viewtopic.php?p= ... ght=#60456
Я сам пользуюсь расширенным скриптом:

Код: Выделить всё

'Пометить файлы с заданной строкой фильтра
' В параметрах прописать искомую строку
' К примеру *.doc;*.txt 
' или" >Архивы"
' вылетает окно (если 0, то помечает файлы в папке, если 1, то сначала раскрывает подпапки, а потом помечает)
Filters = WScript.Arguments(0)

Dim TCS
Set TCS = CreateObject("TCSCRIPT.Helper")

Find_String = InputBox("Введите число 1, если хотите, чтобы выделение произошло и в ПОДПАПКАХ           (по умолчанию выделение происходит только в ТЕКУЩЕЙ папке)", "Выделить по фильтру ")
If Len(Find_String) = 0 Then
   Find_String = 0
End If

If Find_String <> 0 Then
    TCS.SendCommand "cm_DirBranch"
    TCS.Pause = 2000
    TCS.SendCommand "cm_SpreadSelection"
    TCS.SendKeystroke (Filters & "{Enter}")
Else
    TCS.SendCommand "cm_SpreadSelection"
    TCS.SendKeystroke (Filters & "{Enter}")
End If

Set TCS = Nothing
Иногда хочется пометить файлы в подпапках, он его выполняет
У меня тоже была проблема с несанкционированным переключением на английский. Я стал брать название шаблона в кавычки - проблем стало меньше
>"Файлы не старше 1 часа"

Добавлено: Чт май 06, 2010 14:39
sa
sa писал(а):нашлось простое решение
Я имел ввиду, что это решение обходится встроенными средствами ТК - без всяких скриптов, переключений языков и т.д. и по месту занимает всего на 4 символа больше, чем само название фильтра.

Добавлено: Чт май 06, 2010 16:02
Вахмурка
http://powerpro.wincmd.ru/Scripts/SelectFilter.htm
Работает на любых раскладках.

Добавлено: Чт май 06, 2010 16:29
sa
Кнопка с командой: cd >Файлы не старше 1 часа
Работает на любых раскладках.

Добавлено: Пт май 07, 2010 22:21
Andrey_A
cd >Файлы не старше 1 часа
А как будет обратная строка через этот же шаблон, т.е все файлы кроме этих - все файлы кроме старше 1 часа
к примеру, если через расширения, то

Код: Выделить всё

cd *.doc;*.txt
показать все файлы с этими расширениями

Код: Выделить всё

cd *.* | *.doc;*.txt
паказать все, кроме этих
А через шаблон обратную сторону медали можно посмотреть, сколько ни старался, у меня не получилось

Добавлено: Вт май 11, 2010 13:52
CaptainFlint
Andrey_A писал(а):А как будет обратная строка через этот же шаблон, т.е все файлы кроме этих - все файлы кроме старше 1 часа
Через этот же — никак, надо новый шаблон.

Добавлено: Вт май 11, 2010 15:09
sa
CaptainFlint писал(а):никак, надо новый шаблон.
Ещё бы придумать, из чего его смастерить...

Добавлено: Вт май 11, 2010 15:54
Вахмурка
надо новый шаблон
Да, кстати, что-то не придумывается. Отрицательные числа вводятся, но не работают. Очевидное решение: выделить то, что моложе одного часа и обратить выделение. Но можно ли действительно сваять шаблон?

Добавлено: Вт май 11, 2010 16:18
Rodny
Может с плагином Age?

Нету времени сейчас экспериментировать

Добавлено: Вт май 11, 2010 16:20
Batya
Также можно использовать ScriptContentPlugin с vbs-скриптом:

Код: Выделить всё

Dim FSO 
Set FSO = CreateObject("Scripting.FileSystemObject") 
If FSO.FileExists(FileName) Then 
  content = Abs(DateDiff("h", Now, FSO.GetFile(FileName).DateLastModified)) 
Else 
  content = Abs(DateDiff("h", Now, FSO.GetFolder(FileName).DateLastModified)) 
End If 
Set FSO = Nothing