Как запустить произвольную команду после старта FAR

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Gleb Kozyrev
Posts: 155
Joined: Thu 12 May, 2005 14:27
Location: Киев
Contact:

Как запустить произвольную команду после старта FAR

Post by Gleb Kozyrev »

Требуется Far не ниже 1.70 alpha 6 build 2020.

Создаём автостартующий макрос (подставьте свою комбинацию клавиш вместо AltCtrlF12; если написать F13, почему-то не работает).
farautoexec.reg

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Shell\AltCtrlF12]
"Sequence"="$If (Env(\"FARAUTOEXEC\") != \"\") $Text Env(\"FARAUTOEXEC\") Enter $End"
"Description"="Autoexec"
"RunAfterFARStart"=dword:00000001
и bat-файл (подставьте свой путь к Far.exe вместо %ProgramFiles%\Far\)
farcmd.bat

Code: Select all

@set FARAUTOEXEC=%*
@"%ProgramFiles%\Far\Far.exe"
Проверяем

Code: Select all

farcmd.bat macro:post %a=MsgBox("Far","Hello, World!",0); F10 Enter

Gleb Kozyrev
Posts: 155
Joined: Thu 12 May, 2005 14:27
Location: Киев
Contact:

Post by Gleb Kozyrev »

Улучшенная версия farcmd.bat

Code: Select all

@echo off

setlocal
set FAROPTIONS=
set FARAUTOEXEC=

if _%1_ == _/?_ (
echo Execute custom command after FAR starts
echo Usage: farcmd.bat [^<FAR options^>] [-- ^<command^>]
echo.
set FAROPTIONS=/?
goto exec
)

:options
if _%1_ == __ goto exec
if _%1_ == _--_ (
  shift
  goto command
) else (
  set FAROPTIONS=%FAROPTIONS%%1 
  shift
  goto options
)

:command
if _%1_ == __ (
  goto exec
)else (
  set FARAUTOEXEC=%FARAUTOEXEC%%1 
  shift
  goto command
)

:exec
"%ProgramFiles%\Far\far.exe" %FAROPTIONS%

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

че этим хотел сказать то?
или это так, к сведению?

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

Post by zg »

Skirda wrote:че этим хотел сказать то?
или это так, к сведению?
что для автостартующих макросов кнопки занимаются. хотя это глобальной переменной обойти можно.

Gleb Kozyrev
Posts: 155
Joined: Thu 12 May, 2005 14:27
Location: Киев
Contact:

Post by Gleb Kozyrev »

Skirda wrote:че этим хотел сказать то?
или это так, к сведению?
А что, есть способ лучше?

User avatar
t-rex
Страшный и ужасный
Posts: 4907
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 6 times
Contact:

Post by t-rex »

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

User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Post by WARP ItSelf »

ммм, а нахрена тогда макрос?

User avatar
t-rex
Страшный и ужасный
Posts: 4907
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 6 times
Contact:

Post by t-rex »

WARP ItSelf wrote:ммм, а нахрена тогда макрос?
Ну кто то же должен этот плагин вызвать.

User avatar
zg
zero-gravity
Posts: 5817
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 147 times
Contact:

Post by zg »

t-rex wrote:Ну кто то же должен этот плагин вызвать.
preload и всё делать setstartupinfo…

User avatar
t-rex
Страшный и ужасный
Posts: 4907
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 6 times
Contact:

Post by t-rex »

zg wrote:
t-rex wrote:Ну кто то же должен этот плагин вызвать.
preload и всё делать setstartupinfo…
Ну тока если ещё имя dll сделать на Z чтоб он загружался последним.

User avatar
mirror
Posts: 98
Joined: Sun 03 Apr, 2005 20:20
Contact:

Post by mirror »

t-rex wrote: Ну тока если ещё имя dll сделать на Z чтоб он загружался последним.
Кстати, давно пора бы предусмотреть какой-нибудь более приемлимый способ управления порядком загрузки плагинов...
WBR, Eugene
e-mail: 4mirror собака mail точка ru

User avatar
t-rex
Страшный и ужасный
Posts: 4907
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 6 times
Contact:

Post by t-rex »

mirror wrote:
t-rex wrote: Ну тока если ещё имя dll сделать на Z чтоб он загружался последним.
Кстати, давно пора бы предусмотреть какой-нибудь более приемлимый способ управления порядком загрузки плагинов...
А что ты считаешь более приемлемым способом?

User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Post by WARP ItSelf »

t-rex

С учетом кэша я честно говоря этот способ себе слабо представляю.

User avatar
mirror
Posts: 98
Joined: Sun 03 Apr, 2005 20:20
Contact:

Post by mirror »

Например, прописывать приоритет загрузки в реестре. А в первый раз брать из PluginInfo. А в алфавитном порядке - только если он не указан.
WBR, Eugene
e-mail: 4mirror собака mail точка ru

User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Post by WARP ItSelf »

WARP ItSelf

Реально в алфавитном порядке грузятся только плагины с PF_PRELOAD. У тебя их сколько - 3? А загрузка всего остального происходит из кэша в произвольном порядке по мере надобности (кэш сортируется в алфавитном порядке, поэтому и плагины с PF_PRELOAD так грузятся). А что касается приоритета обработки файлов/результатов поиска/префиксов, то это другая тема.

Post Reply

Return to “Предложения и идеи”