Страница 1 из 4

Нужна кнопка "Отправить - Адресат"

Добавлено: Вт апр 21, 2015 20:05
Reys
У меня практически все пункты из контекстного SendTo продублированы в ТС кнопками, на которые перетаскиваю файлы. Не хватает одной - "Адресат".
Тема поднималась на форуме много раз, но решение скатывалось к частным случаям - либо конкретный почтовый клиент, либо утилита. А просто продублировать действие Windows возможно?

Добавлено: Ср апр 22, 2015 14:44
Flasher
Всё возможно. Но вот смысл? Ещё можно, конечно, в реестр лазить, но что-то неохота этим заниматься.

На безрыбье можно, конечно, просто и клавиши нажимать:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "send(+{F9}) send(@`ь`) delay(80) send(@`а`)"
sendmail.dll
Отправить на Адресат

Добавлено: Сб апр 25, 2015 13:19
Reys
Английский я не знаю, потому со ссылкой не разобрался. А предложенная кнопка работать отказывается - пишет "invalid function call". Что же касается частичных успехов в поиске решений, то
1. я пробовал "нажимать клавиши" через nnCron - работает. Вот только не смог в ТС на кнопку повесить
2. похожее решение с SendKeys давным-давно предложил Batya вот тут http://forum.wincmd.ru/viewtopic.php?t=7771. Опять же вопрос - как это повесить на кнопку?
3. в реестре видно, что нужное мне действие вызывается обращением к sendmail.dll: параметр "@sendmail.dll,-4" значение "Адресат". Неужели не существует другого способа вызвать обращение к этой dll, кроме как через контекстное меню SendTo?

Добавлено: Сб апр 25, 2015 14:57
Flasher
Reys писал(а):потому со ссылкой не разобрался.
Там выложены исходники на Си для утилиты, её скомпилить ещё нужно.
Reys писал(а):А предложенная кнопка работать отказывается - пишет "invalid function call".
Последняя бета.
2. Этот вариант не годится.
3. Я знаю про параметр, но в каком контексте он работает с объектом понятия не имею.

Добавлено: Сб апр 25, 2015 16:27
Reys
Обновил TCFS2. Ошибка пропала, но все равно не работает. Во-первых, - send(@`а`) не актуально, т.к. в слове "Адресат" буква А не активна (не подчеркнута). Во-вторых, - работать будет только при русской раскладке. В третьих,- не будет работать, если в ТС включен быстрый поиск по первой букве.
Второй вариант не то что бы не годится... Он работает, если через него передать нужное количество {UP},{RIGHT} и т.д. но такой вариант привязан к количеству строк в контекстном меню. Изменилось количество - добавляй/убавляй {UP} в скрипте.
В итоге получаем, что и предложенный вариант с кнопкой и скрипт сильно зависят от внешних факторов. Может есть еще варианты?

Добавлено: Сб апр 25, 2015 16:42
Flasher
Reys писал(а):Во-первых, - send(@`а`) не актуально, т.к. в слове "Адресат" буква А не активна (не подчеркнута).
Есть правило: если нет подчёркивания, то берётся первая буква.
Reys писал(а):Во-вторых, - работать будет только при русской раскладке.
Ложь.
Reys писал(а):В третьих,- не будет работать, если в ТС включен быстрый поиск по первой букве.
Глупость.
Reys писал(а):Изменилось количество - добавляй/убавляй {UP} в скрипте.
Ужас.
Прошу прощения за концентрацию "добрых" эпитетов в рамках одного поста. :D
Что касаемо отработки: там всё утыкается в задержку. Можно накинуть на delay ещё 20-70 пунктов.
Reys писал(а):Может есть еще варианты?
Попросить MVV или ещё кого скомпилить утилиту.

Добавлено: Сб апр 25, 2015 17:38
Reys
Сорри. Это не ложь и глупость, а неудачный эксперимент. Кнопка не заработала, и я попросту понажимал все пальцем. При ручном вводе реакция отличается, почему-то. В любом случае send(@`а`) не работает - ни как команда, ни вручную. Почему-то для Адресата (или для папки SendTo) правило первой буквы не выполняется. Увеличение задержки никак не влияет.

Добавлено: Сб апр 25, 2015 18:02
Flasher
Reys писал(а):Это не ложь и глупость, а неудачный эксперимент.
Прежде чем что-то утверждать, нужно владеть матчастью, не так ли? :wink:
Reys писал(а):При ручном вводе реакция отличается, почему-то.
В чём именно отличается?
Reys писал(а):Почему-то для Адресата (или для папки SendTo) правило первой буквы не выполняется.
А система какая?

Начнём с такой проверки, оставив только первую часть параметров: /ef "send(+{F9}) send(@`ь`)"
Меню "отправить" раскрывается?

Добавлено: Сб апр 25, 2015 22:01
Reys
Flasher писал(а):Прежде чем что-то утверждать, нужно владеть матчастью, не так ли? Wink
Ну в данном случае, что вижу - то пою
Flasher писал(а):В чём именно отличается?
В том, о чем я говорил - ручной ввод корректно работает только при русской раскладке и отключенном быстром поиске в ТС.
Flasher писал(а):А система какая?
ХР
Flasher писал(а):Начнём с такой проверки, оставив только первую часть параметров: /ef "send(+{F9}) send(@`ь`)"
Меню "отправить" раскрывается?
Меню раскрывается, задержка отрабатывается и все. По первой букве не отправляется никуда - ни на рабочий стол, ни в скайп, ни в указанную мной папку.

Добавлено: Вс апр 26, 2015 00:47
Flasher
Reys писал(а):Ну в данном случае, что вижу - то пою
В данном случае - что думаю. Можно видеть одно, но в итоге привязать увиденное к иной реальности.
Reys писал(а):ручной ввод корректно работает только при русской раскладке и отключенном быстром поиске в ТС
Ясно. Тут суть не в раскладке, а передаче точных символов и отправке сообщений файловой панели при использовании кнопок/пользовательских команд ТС.
Reys писал(а):ХР
Завтра посмотрю.
Reys писал(а):Меню раскрывается, задержка отрабатывается и все.
Откуда тут задержка? В общем, посмотрю позже.

Добавлено: Вс апр 26, 2015 10:23
Reys
Из /ef "send(+{F9}) send(@`ь`) delay(80) send(@`а`)" отрабатывается все, кроме send(@`а`). В т.ч. отрабатывается delay(80). Для большей наглядности пробовал делать так /ef "send(+{F9}) delay(800) send(@`ь`) send({RIGHT}) delay(800) send(@`t`)" - так по крайней мере видно, что происходит.

Добавлено: Вс апр 26, 2015 21:02
Flasher
Reys
Посмотрел поведение на XP, там действительно не отдаётся приоритет первой букве. Что можно предложить. Можно в реестре автоматически ставить в значении ключа амперсанд. У меня в XP убит SendTo, я не могу посмотреть адрес ключа. На 7 он такой: HKCU\Software\Classes\Local Settings\MuiCache\BB\B1A07F78\@sendmail[dot]dll,-4

Добавлено: Пн апр 27, 2015 11:08
Reys
To Flasher:
Приоритет не отдается именно в папке SendTo. В этой папке вообще ни один пункт не запускается подобным образом. Я подозреваю, что это особенность самой папки. Добавление амперсанда ничего не меняет.
В любом случае, спасибо за попытку. Вопрос вдогонку - где посмотреть полный список кодов клавиш для TCFS2?
To All:
Вопрос открыт, тема актуальна. Помогите дожать, плз.

Добавлено: Пн апр 27, 2015 12:07
Flasher
Reys писал(а):Я подозреваю, что это особенность самой папки.
На 7-ке всё работает как часы.
Reys писал(а):Добавление амперсанда ничего не меняет.
Куда он добавлялся?
Reys писал(а):Вопрос вдогонку - где посмотреть полный список кодов клавиш для TCFS2?
Тут не нужны коды. Я же выше объяснял.

Добавлено: Пн апр 27, 2015 13:01
Reys
Flasher писал(а):
Reys писал(а):Добавление амперсанда ничего не меняет.
Куда он добавлялся?
Я добавлял его в значение параметра - "&Адресат", после чего в меню он отображался, как амперсанд - "&Адресат", и реакции на send(@`а`) как не было, так и нет. Пробовал сделать то же самое с другими пунктами меню, как родными, так и вновь созданными; с именами русскими и английскими - реакция ноль... Потому и делаю вывод про особенность папки. Не исключаю, что эта "особенность" прописана где-то в реестре в виде запрета и может быть снята. Проверить на других компах возможности нет - ХР уже не в моде, а на трех моих подопечных машинах конфигурация однотипная и поведение тоже.
Flasher писал(а):
Reys писал(а):Вопрос вдогонку - где посмотреть полный список кодов клавиш для TCFS2?
Тут не нужны коды. Я же выше объяснял.
ТУТ не нужны, просто хочу знать на будущее. В ini файле приведены несколько, а где взять остальные?