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 

Выполнить(run) передача параметра в ярлык (lnk) c параметром

 
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение printer-friendly view
View previous topic :: View next topic  
Author Message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Tue Feb 02, 2010 21:01    Post subject: Выполнить(run) передача параметра в ярлык (lnk) c параметром Reply with quote

Пристрастился я к WinKey+R (RUN, выполнить) таким образом:
добавляю к переменной среды PATH путь к папке RUNBOX (где
ярлыки ссылающиеся на программы и скрипты vbs, js)

[отступление] по идее, я думал, что можно в RUNBOX
класть сами скрипты , но почему-то они не вызываються через
RUN, хотя, как я понимаю, они дожны, так как эти расширения
присутствуют в переменной среды PATHEXT;
но у меня не работает.

в скрипты я так же передаю аргументы, например, скрипт запускает
TheBat и передает мастер пароль. Эта конструкция работает -
lnk на vbs плюс параметр, но ограниченность функционала vbscript
относительно ожидания окон для передачи чего-нибудь, заставила
меня посмотреть в сторону AutoIt, и вот тут возникла проблема
в lnk, где в строке "объект" должно быть ссылка на autoit.exe c
параметром-скриптом au3, и во все это нужно передать
параметр-пароль через RUN).
Не срабатывает.

PATH=D:\TOTAL\RUNBOX;C:\WINDOWS...
D:\TOTAL\SCRIPTS\
thebat.au3
AutoIt3.exe

D:\TOTAL\RUNBOX\
thebat.lnk ссылаться на autoit.exe c параметром thebat.au3
ярлык должен запускаться через RUN c параметром

"объект" ярлыка:
%COMMANDER_PATH%\SCRIPTS\AutoIt3.exe thebat.au3
или
%COMMANDER_PATH%\SCRIPTS\AutoIt3.exe %COMMANDER_PATH%\SCRIPTS\thebat.au3
так не работает.

Тут что-то с логикой, переменными среды в ОС, чего я не знаю.
Возможно ли сделать такую схему работоспособной?
Можно конечно компилировать au3 в exe, но гибкость пропадет.
Можно поменять заголовок, если есть идея как сформулировать
Back to top
View user's profile Send private message
Venclav



Joined: 12 Apr 2009
Posts: 3
Location: Оркск

Post (Separately) Posted: Tue Feb 02, 2010 21:09    Post subject: Reply with quote

%COMMANDER_PATH% действует только в среде Тотала. Винда (глобально) об этой переменной не знает.
Попробуй задать жестко в системных переменных путь к Тоталу.

Так и есть: работает!
_Johm wrote:
[отступление] по идее, я думал, что можно в RUNBOX

класть сами скрипты , но почему-то они не вызываються через

RUN, хотя, как я понимаю, они дожны, так как эти расширения

присутствуют в переменной среды PATHEXT;

но у меня не работает.

Скрипты вызываются…
_________________
Коркодил
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Tue Feb 02, 2010 21:32    Post subject: Reply with quote

vbs через lnk в RUN у меня работают с параметром.
А про %COMMANDER_PATH%, думал писать- не писать и
не написал, у меня эта переменная среды, так же задана
через SET, представим что в первом посте, вместо
%COMMANDER_PATH% любая другая переменная %MYDIR%

К тому же, если в lnk использовать %COMMANDER_DRIVE% или
%COMMANDER_PATH% все будет работать

например lnk c %COMMANDER_PATH%\PROGS\PROFILE\abook\Ab.exe
работает и даже без этой переменной, заданой через SET
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Tue Feb 02, 2010 21:34    Post subject: Reply with quote

Не вызываются скрипты через RUN без расширения.
нужно писать somescript.vbs, когда с lnk, exe, cmd, bat
можно ввести просто somescript
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Thu Feb 04, 2010 20:34    Post subject: Reply with quote

[решено]
Исправляю свою ошибку. Хотя от части был прав:

Переменную COMMANDER_PATH, не заданную через SET,
можно использовать в vbscript'ах, интерпритатор ее
разворачивает, но AutoIt3.3.4 этим похвастаться не может,
то есть,
lnk, ссылающийся на vbscript, запущенный с параметром через
"Выполнить", отработает
Code:
объект ярлыка:
[%COMMANDER_PATH%\SCRIPTS\thebat.vbs

где в самом thebat.vbs присутствует COMMANDER_PATH,
но
с AutoIt это не прокатит, запинка происходит в самом
скрипте au3 - не разворачивает переменную
COMMANDER_PATH.

Если, явно задать COMMANDER_PATH через SET, то
такое:
Code:
объект ярлыка bat.lnk
%COMMANDER_PATH%\SCRIPTS\autoit\AutoIt3.exe "thebat.au3"
работает.

Например,
WinKey+R
воодим
Code:
bat somepassword
Запускается bat.lnk на AutoIt3.exe thebat.au3 somepassword
Back to top
View user's profile Send private message
tarbo



Joined: 10 Feb 2010
Posts: 2

Post (Separately) Posted: Wed Feb 10, 2010 11:53    Post subject: Reply with quote

_Johm wrote:
Не вызываются скрипты через RUN без расширения.
нужно писать somescript.vbs, когда с lnk, exe, cmd, bat
можно ввести просто somescript

посмотрите значение переменной %PATHEXT%
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Wed Feb 10, 2010 15:08    Post subject: Reply with quote

Она наверно у всех такая:
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

Я говорю про то, что даже так скрипт через RUN-диалог нужно все
равно вызвать с расширением.., то есть экзешник somefile.exe - вы
вводите только имя somefile {ENTER}, а, если это скрипт, то нужно
вводить somescript.vbs {ENTER}

Если создать на это скрипт ярлык (lnk), то поведение такое же как с exe.
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Wed Feb 10, 2010 15:54    Post subject: Reply with quote

tarbo
Сами то хоть пробовали то, о чем я уже два раза написал из-за реплики
Quote:
посмотрите значение переменной %PATHEXT%
?
Back to top
View user's profile Send private message
tarbo



Joined: 10 Feb 2010
Posts: 2

Post (Separately) Posted: Sun Feb 14, 2010 19:34    Post subject: Reply with quote

_Johm wrote:
tarbo
Сами то хоть пробовали то, о чем я уже два раза написал из-за реплики

Это вы к чему? Я предположил, что у вас не прописаны расширения в переменной. Значит эти расширения для запуска файлов без расширения только для путей %PATH%. Если вы хотите запускать, то пропишите пути в переменную. Какого ответа вы еще ждали я не знаю, а до этого и самому не сложно додуматься.
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Mon Feb 15, 2010 08:30    Post subject: Reply with quote

tarbo wrote:
Значит эти расширения для запуска файлов без расширения только для путей %PATH%.

Ничего это не значит.
И ничего не надо прописывать в переменные для проверки:
положите файл test.vbs
Code:
WSCript.Echo "test"

в папку C:\WINDOWS
и попробуйте без расширения запустить его через RUN.
Получилось? Думаю нет.

Вот я и не доумеваю, почему проблема с vbs, когда как с cmd bat это работает?
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10346
Location: Россия, Саратов

Post (Separately) Posted: Mon Feb 15, 2010 10:20    Post subject: Reply with quote

_Johm
Потому что, ЕМНИП, система корректно обрабатывает (в определённом порядке) запуск без расширений только COM, EXE, BAT и CMD.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Mon Feb 15, 2010 10:35    Post subject: Reply with quote

Avada
ЕМНИП, еще lnk, которой вообще нет в PATHEXT. А повторяюсь я для особо одаренных, которые советуют проверить переменные среды.
[тема закрыта]
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Mon Feb 15, 2010 10:52    Post subject: Reply with quote

Avada wrote:
_Johm
Потому что, ЕМНИП, система корректно обрабатывает (в определённом порядке) запуск без расширений только COM, EXE, BAT и CMD.

И это имеет силу еще со времен черных экранов. Smile
Порядок как раз такой.

Кстати, LNK без расширения Windows тоже выполняет, если он находится в папке, указанной в переменной PATH - только что проверял. Поэтому для запуска всяких там скриптов нужно создавать ярлыки, которые будут запускать соответствующую оболочку. Дополнительные параметры, которые нужно передать скрипту, можно указывать прямо после имени ярлыка в поле запуска.

Про PATHEXT я тоже посмотрел, она влияет лишь на то, какие файлы без указания расширения будут запускаться из командной строки - если присвоить переменной ерунду, VBS из командной строки без указания расширения запустить не удастся, как и LNK, которого там по умолчанию и нет - пока не пропишешь его там вручную, из командной строки он без указания расширения запускаться не будет.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Mon Feb 15, 2010 11:06    Post subject: Reply with quote

Вообще-то, я говрою про RUN-диалог, и, если, что касаеться перменных PATH и PATHEXT, как выяснилось, благодаря MVV, vbs запускаеться без расширения в cmd, то с RUN по-другому.
Про ярлык на скрипт я талдычу с начала темы (тут, MVV, мне Америку не открываешь...)

Значит, где-то в другом месте определяется поведение RUN, раз они различаются с cmd. Скорее всего, это shell32.dll, думаю смысла нет обсуждать...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение All times are GMT + 4 Hours
Page 1 of 1

 
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