Страница 1 из 2
Редактирование имен файлов мышью
Добавлено: Чт сен 01, 2011 02:53
LonerD
Цель - организовать в Тотале редактирование имен файлов с помощью одной лишь мыши.
По аналогии с проводником - двойным щелчком мыши выделяем название файла, вставляем в него например новое имя из буфера обмена (или удаляем часть названия, выделив его и нажав Удалить), затем щёлкаем кнопкой мыши по свободному месту сбоку от файла - и файл переименовывается. Задействовать клавиатуру при этом не нужно.
Возможно ли такое организовать ? (при помощи скриптов или при помощи AutoIt по аналогии с AutoFx).
Примитивный вариант - сделать кнопку, эмулирующую нажатие Enter и нажимать её после переименования файла - реализовать несложно, но хотелось бы большей универсальности.
(попрошу без дебатов, что мышь зло, и Тоталом надо управлять исключительно с клавиатуры)
Добавлено: Чт сен 01, 2011 07:08
Avada
LonerD писал(а):Примитивный вариант - сделать кнопку, эмулирующую нажатие Enter и нажимать её после переименования файла - реализовать несложно
Несложно ли — это ещё вопрос. Рекомендую попробовать с командой
cm_Return. Файл/каталог/архив под курсором будет обрабатываться без учёта идущего редактирования. То есть в результате получим открытие/запуск объекта с прежним именем.
Добавлено: Чт сен 01, 2011 10:22
sa
Совсем для другого и по другому, но под название темы, по-моему,
скрипт подходит.
Добавлено: Чт сен 01, 2011 16:08
ask-rus
В сторону
TWinKey:
VadiMGP писал(а):Эмуляция нажатия клавиш - разновидность бомбы* с таймером. В лучшем случае* чревато только тем, что эмулируемое действие не выполнится, в худшем - выполнится какое-то другое действие.
Хотя, тогда условия были не те.
Добавлено: Чт сен 01, 2011 16:52
LonerD
sa
Спасибо, тоже выход, хотя неуниверсальный.
Avada
Мда... жаль (
Похоже, остаётся только вариант реализации на AutoIt - например, резидентная программа, которая в текстовом курсоре при нажатии средней кнопки (или длительном удержании левой кнопки) мыши будет эмулировать нажатие на Enter.
Добавлено: Чт сен 01, 2011 17:55
sa
LonerD писал(а):тоже выход, хотя неуниверсальный
Зато будет работать у тех, кому не нравится ситуация, когда при повторном щелчке на имени файла открывается окошко переименования и кто соответственно, добавил строку InplaceRename=0 в раздел [Configuration] файла wincmd.ini, чтобы она не возникала.
Add
Впрочем, способ вызова окошка переименования (повторным щелчком, командами cm_RenameOnly или cm_RenameSingleFile), и для запрашиваемого скрипта (программы) существенного значения иметь не должен.
Добавлю ещё вариант предложенного ранее скрипта, не требующий регистрации Helper-а.
Код: Выделить всё
' Описание: Переименовать файл/каталог под курсором в диалоге
' Параметры: %P%N
'Требования: 1.Для применимости диалога в корневом каталоге диска ключ
' ShowParentDirInRoot (файл wincmd.ini секция [Configuration])
' должен иметь значение 1.
' 2.Необходима утилита TCFS2 для вызова внутренних команд ТК.
Option Explicit
Dim WSH, TCFS2, P_N
Set WSH = CreateObject("WScript.Shell")
TCFS2 = "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"
WSH.Run TCFS2 & " /ef tcm(524)", 1, True
P_N = WScript.Arguments(0)
If InStrRev(P_N,"") = Len(P_N) Then
MsgBox "Курсор не должен располагаться на строке ""..""", _
vbOKOnly + vbCritical, "Переименовать файл/каталог под курсором в диалоге"
Set WSH = Nothing
WScript.Quit
End If
WSH.SendKeys "{INSERT}{HOME}"
Wscript.Sleep(100)
WSH.SendKeys "{INSERT}"
Wscript.Sleep(100)
WSH.Run TCFS2 & " /ef tcm(2053) tcm(1002) tcm(524)", 1, True
Set WSH = Nothing
Wscript.Quit
Добавлено: Чт сен 29, 2011 09:44
Avada
Уточнение моего предыдущего поста. Заставить работать команду
cm_Return для сохранения результатов переименования можно, но только её клавиатурным вызовом. Если повесить команду на кнопку, будет открытие/запуск объекта с прежним именем. (На
ру-борде Rodny правильно сказал, что причина в уводе фокуса с поля ввода на кнопку.)
Добавлено: Чт сен 29, 2011 10:11
sa
Можно попросить Гислера добавить ключ в wincmd.ini, который будет менять реакцию на нажатие мышки вне поля переименования: либо это отказ от изменений (ESC), как сейчас, либо сохранение изменений (ENTER), как в проводнике.
Добавлено: Чт сен 29, 2011 10:14
MVV
Думаю, вряд ли он пойдет на добавление флага, так кардинально меняющего поведение. Это может чересчур сильно контузить, если сделаешь неосторожное действие.
Думаю, максимум, на что он пойдёт - на добавление сообщения с вопросом при щелчке вне поля переименования. Тут хотя бы нежелательных переименований не будет происходить оттого, что флаг оказался не в том положении.
Добавлено: Чт сен 29, 2011 10:15
Avada
sa
Это правильно. Но и в отношении TWinKey мы тут кое-что с автором, пожалуй, обсудим...
MVV
Как насчёт зарепортить пусть даже только в своём варианте?
Добавлено: Чт сен 29, 2011 10:30
sa
MVV писал(а):Это может чересчур сильно контузить, если сделаешь неосторожное действие.
Например, удаление в корзину или окончательно, в зависимости от настроек, может контузить тоже ощутимо.
Добавлено: Чт сен 29, 2011 10:34
MVV
sa писал(а):MVV писал(а):Это может чересчур сильно контузить, если сделаешь неосторожное действие.
Например, удаление в корзину или окончательно, в зависимости от настроек, может контузить тоже ощутимо.
Но при удалении в тотале всегда задается вопрос. И это поведение не менялось добрый десяток лет.
А в данном случае человека может конкретно смутить то, что он, щелкнув мышью, чтобы отменить переименование, наоборот выполнит его. К таким вещам, насколько я успел заметить, Гислер очень серьезно относится.
Avada писал(а):Как насчёт зарепортить пусть даже только в своём варианте?
Теоретически
возможно.
Добавлено: Чт сен 29, 2011 10:44
sa
MVV писал(а):А в данном случае человека может конкретно смутить то, что он, щелкнув мышью, чтобы отменить переименование, наоборот выполнит его.
Естественно, по умолчанию должен остаться устоявшийся вариант, а для перехода на новый потребуются определённые манипуляции.
Добавлено: Чт сен 29, 2011 12:29
CaptainFlint
sa писал(а):Естественно, по умолчанию должен остаться устоявшийся вариант, а для перехода на новый потребуются определённые манипуляции.
Если бы не туча сборок, авторы которых плевали на умолчания…
Добавлено: Вс окт 02, 2011 21:50
Моторокер
sa писал(а):Можно попросить Гислера добавить ключ в wincmd.ini, который будет менять реакцию на нажатие мышки вне поля переименования: либо это отказ от изменений (ESC), как сейчас, либо сохранение изменений (ENTER), как в проводнике.
Есть ещё третий вариант - оставаться в режиме редактирования. А то при случайном щелчке или потере фокуса (всплывающее окно) можно случайно переименовать файл.
Можно добавить маленькую кнопку рядом или внутри поля редактирования.
Думаю, максимум, на что он пойдёт - на добавление сообщения с вопросом при щелчке вне поля переименования.
Только не это. Если и показывать кнопку сохранения/отмены, то сразу. Если ещё их и подсветить дефолтно, тогда наглядно будет видна последующая реакция Тотала на щелчок вне поля, тогда будет меньше путаницы.