Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

AltRun - запуск программ по кнопке с ctrl, shift и не только
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Sun May 14, 2023 15:47    Post subject: Reply with quote

lz57005 wrote:
а вот как реализовать запуск cm_, em_ нужен пример или описание логики.

cm - по числовому значению команды, буквально одна строчка SendMessage или PostMessage.

Отправка em_ команд потребует чуть больше усилий, но ненамного.
Вот пример - TCUtils.cpp
Вот ещё на форуме делфи и вот в теме реализация на AHK/Autoit (и прочие интересные ништяки обсуждаются).

Прямая отправка em_ и cm_ команд очень нужна.
Имеется ini-файл с сотнями em_ команд.
Если нужно изменить или исправить работу какой-то команды - достаточно подправить одну запись в ini, и дальше уже вызывать em_команду откуда нужно (из меню, с кнопок панели, через AltRun). И не нужно каждый раз вспоминать "а в этом месте я внёс исправления, а вот здесь забыл"

Надеюсь на дальнейшее развитие AltRun.
Частично функционал пересекается с TCFS2, но здесь всё гораздо доступней для новичков, причём все нюансы работы разжёваны в наглядной документации Very Happy
_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
lz57005



Joined: 05 Mar 2020
Posts: 26

Post (Separately) Posted: Wed Aug 09, 2023 18:31    Post subject: Reply with quote

LonerD wrote:
Прямая отправка em_ и cm_ команд очень нужна.
Имеется ini-файл с сотнями em_ команд.
Если нужно изменить или исправить работу какой-то команды - достаточно подправить одну запись в ini, и дальше уже вызывать em_команду откуда нужно (из меню, с кнопок панели, через AltRun). И не нужно каждый раз вспоминать "а в этом месте я внёс исправления, а вот здесь забыл"

Давно сюда не заходил, тем не менее...
Посмотрел примеры, вроде бы не сложно, но весь AltRun - это по сути обёртка для ShellExecuteEx, поэтому вначале подумал добавить некую переменную типа --run=:cm:, потом подумал зачем менять текущую логику запуска добавляя sendmessage. Логичнее сделать простой helper типа tcmd.exe cm_Command и запускать:
Code:
-r tcmd.exe -p cm_Command -c tcm.exe -cp em_UserCommand

Потом я подумал ведь уже есть tcfs2, да, код параметров кнопки конечно не супер:

Code:
-r tcfs2.exe -p 'tcm(xxx,1)' -c tcfs2.exe -cp '/ef "tem(em_UserCmd)"'


Ну можно сделать симпатичнее через cmd:
Code:
em.cmd
start "" "%~dp0TCFS2.exe" /ef "tem(%*)"

Code:
cm.cmd
start "" "%~dp0TCFS2.exe" /ef "tcm(%~1,1)"


Code:
-r cm.cmd -p xxx -h -c em.cmd -cp em_UserCmd -ch


Единственное не увидел в TCFS2 может ли он принимать cm_Command по имени, т.к. по номеру неудобно.

Отсюда вопрос стоит ли делать какой-то простенький helper
tcmd.exe cm_Cmd|em_UserCmd из-за сложности записи для tcfs2... т.к. вносить этот функционал внутрь AltRun не хочется.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Wed Jan 03, 2024 16:24    Post subject: Reply with quote

Правильно ли я понимаю, что путь к исполняемому файлу указывается только в явном виде и использование переменных среды в пути невозможно? Если нет, то как запустить программу, путь к которой
Code:
%ProgramFiles(x86)%\Program\program.exe
Поигрался с кавычками и удвоением процента - ничего не вышло. Что я делаю не так?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 239

Post (Separately) Posted: Thu Jan 04, 2024 06:01    Post subject: Reply with quote

Вахмурка
У меня получилось следующим образом: указать в параметрах только имя самого EXE-шника, а путь до него указать в поле "путь запуска", то есть, например:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\exe\altrun.exe
-v "program.exe" {+параметры запуска клавиш-модификаторов}
WCMICON2.DLL
Пример запуска программы по пути переменной окружения
%ProgramFiles(x86)%\Program\
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 239

Post (Separately) Posted: Thu Jan 04, 2024 09:56    Post subject: Reply with quote

Благодаря подсказкам в ЛС нашелся способ лучше:
Code:
-v "%|ProgramFiles(x86)|\Program\program.exe" {+параметры запуска клавиш-модификаторов}

То есть вот так нужно указать переменную окружения:
%|envvar|
Back to top
View user's profile Send private message
lz57005



Joined: 05 Mar 2020
Posts: 26

Post (Separately) Posted: Thu Jan 11, 2024 20:26    Post subject: Reply with quote

Вахмурка
Code:

-r "%%ProgramFiles(x86)%%\Internet Explorer\iexplore.exe"

странно что у вас не работают стандартное удвоение процента, только что проверил, всё запустилось, totalcmd передал altrun строку уже с одинарными процентами и altrun сам раскрыл переменную. Можете скинуть что выдаёт altrun_dbg.exe и какая версия altrun.

Monarch-LFV
Хм, а давно в тотале появилась подобная пунктуация? %|envvar|
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2567

Post (Separately) Posted: Thu Jan 11, 2024 21:30    Post subject: Reply with quote

lz57005 wrote:
давно в тотале появилась подобная пунктуация? %|envvar|

History.txt wrote:
03.05.23 Release Total Commander 11.00 beta 1
26.04.23 Added: Command line parameters (button bar, start menu): New parameter %|envvar| inserts environment variable envvar, e.g. %|windir| or %|$DESKTOP| in the parameter field (32/64)
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Tue Jan 16, 2024 00:56    Post subject: Reply with quote

lz57005 wrote:
Вахмуркастранно что у вас не работают стандартное удвоение процента, только что проверил, всё запустилось, totalcmd передал altrun строку уже с одинарными процентами и altrun сам раскрыл переменную. Можете скинуть что выдаёт altrun_dbg.exe и какая версия altrun.
Да нет, все действительно работает. Уж не вспомнить, что я там делал, но теперь, набив кучу шишек, я программу AltRun более или менее освоил. Видимо, на первых порах мои кривые ручонки что-то не так наковыряли.
Мне нужно было передать в программу параметры %P, %P%N, %L и т.д., причем каждому параметру соответствовала своя комбинация нажатых клавиш. Долго бился со случаями наличия в имени и/или пути пробелов и/или символов кириллицы - передача должна была работать при любом сочетании этих случаев. Универсальным лекарством оказался параметр %Q (отключение кавычек).
Прога отличная, спасибо lz57005!
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 174

Post (Separately) Posted: Tue Mar 26, 2024 01:05    Post subject: Reply with quote

Спасибо за труд! Интересный лаунчер.
Хотел сказать пару моментов по поводу справки.

Мелковат текст. В окне разделов его нельзя увеличить. В окне статьей можно, но лучше от этого не становится - жирный шрифт становится еще жирнее, из-за чего в таблицах с примерами текст кажется совсем грузным и тестным. В справке очень много жирного выделения, что затрудняет чтение.

Конструкции типа:
Code:
-x "yyy zzz"

--xxx="yyy zzz"

-x 'yyy "zzz zzz" yyy'

--xxx='yyy "zzz zzz" yyy'

Выглядят как-то неуклюже и непривычно, и как следствие - тяжелы для восприятия. Почему бы не использовать обычное и привычное сочетание <key> <value> <ключ> <значение> 'значение "в кавычках"' и т.п.?

Слово "цель", конечно, понятно в контексте самой утилиты, но в справке местами оно звучит настолько нескладно и негармонично, что, в целом, портит общее впечатление (и, опять же, затрудняет восприятие). Необязательно использовать одно и то же слово. В зависимости от контекста, можно и даже нужно его менять. Это может быть и "объект запуска", и "задача", и "процесс", и даже "объект-цели" - вариантов масса, главное чтобы термин гармонично вписывался в предложение и точно передавал смысл.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group