Portable Far

Хотите говорить о Far и не знаете, куда обратиться?

<t>PortableFar нужен?</t>

Нужен
114
69%
Мне нет, но, вообще, да
41
25%
Не нужен
10
6%
 
Total votes: 165

ganzzz
Posts: 15
Joined: Sat 02 May, 2009 16:13

Еще один portable bat для Far-a...

Post by ganzzz »

Latest post of the previous page:

Реализация не полная, пока только идея...

Last edited by ganzzz on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятаны технические подробности
User avatar
Александр Кряжев
Posts: 882
Joined: Sun 03 Dec, 2006 10:09
Location: Москва
Has thanked: 2 times
Contact:

Re: Portable Far

Post by Александр Кряжев »

asder
Стоило ради такого откровения регистрироваться?

Фар - маргинальный продукт. (c) zg
ks7715
Posts: 2
Joined: Fri 28 Aug, 2009 21:39

Re: Portable Far

Post by ks7715 »

Взял батник Wolf, почитал тему, взяв опять же его рекомендации и так по мелочи сделал батник для Far2

PortableFAR.cmd

Code: Select all

@echo off
rem    This batch file restores Far settings from previously saved file
rem    to the registry, starts FAR, waits for exit and saves setting
rem    and clear used registry

rem username для настроек FAR. не должен пересекаться с друзьями/коллегами.
set faruser=ks7715

rem каталог для архиваторов и прочих носимых с ФАРом утилит - у меня это .\FAR\utils
path=%~dp0utils;%path%

if not exist "%~dp0Far%faruser%Save1.reg" goto noimport
tasklist.exe | find /i "far.exe" >nul && goto :noimport

reg query HKEY_CURRENT_USER\Software\Far2\users\%faruser% 2>nul && echo Erasing.. && Reg Delete HKEY_CURRENT_USER\Software\Far2\Users\%faruser% /F >Nul
reg import "%~dp0Far%faruser%Save1.reg" >nul
reg query HKEY_LOCAL_MACHINE\Software\Far2\users\%faruser% 2>nul && echo Erasing.. && Reg Delete HKEY_LOCAL_MACHINE\Software\Far2\users\%faruser% /F >Nul
reg import "%~dp0Far%faruser%Save2.reg" >nul

:noimport
echo. & echo FARuser %faruser%, Starting from %~dp0.
"%~dp0\far.exe" /u %faruser%

tasklist.exe | find /i "far.exe" >nul && goto :eof

reg delete HKEY_CURRENT_USER\Software\Far2\Users\%faruser%\PluginsCache /f >nul
regedit /ea "%~dp0Far%faruser%Save1.reg" HKEY_CURRENT_USER\Software\Far2\users\%faruser%
regedit /ea "%~dp0Far%faruser%Save2.reg" HKEY_LOCAL_MACHINE\Software\Far2\users\%faruser%

Reg Delete HKEY_CURRENT_USER\Software\Far2\Users\%faruser% /F >Nul
Reg Delete HKEY_LOCAL_MACHINE\Software\Far2\users\%faruser% /F >Nul
PortableFAR.cmd, ложите в папку с Far

В нем set faruser=ks7715, меняете на свое, например set faruser=user_23

В папке с Far, учитывая, имя в данном случае user_23
FarSave1.reg переименовываете Faruser_23Save1.reg
FarSave2.reg переименовываете Faruser_23Save2.reg

В содержимом Faruser_23Save1.reg находите и меняете строки, учитывая, что имя в данном случае user_23
HKEY_CURRENT_USER\Software\Far2 на HKEY_CURRENT_USER\Software\Far2\users\user_23

В содержимом Faruser_23Save2.reg находите и меняете строки, учитывая, что имя в данном случае user_23
HKEY_LOCAL_MACHINE\Software\Far2 на HKEY_LOCAL_MACHINE\Software\Far2\users\user_23

В каталог \utils в корне папки Far ложите необходимые архиваторы и утилиты/

Все, теперь можете спокойно запускать Far с помощью PortableFAR.cmd с любого носителя. :D

P.S. Извиняюсь, если это в теме уже разжевано.
wolf
Posts: 1030
Joined: Fri 08 Apr, 2005 12:54
Location: Moscow

Re: Portable Far

Post by wolf »

ks7715
поправь свой батничек
path="%~dp0\utils";%path% на path=%~dp0utils;%path%
не нужны там кавычки, а слеш так точно лишний
ошибка — считать, что фар для пользователей. (с) zg
ks7715
Posts: 2
Joined: Fri 28 Aug, 2009 21:39

Re: Portable Far

Post by ks7715 »

Прикольно, зашел на форум, чтобы это исправить :D
Так как только, что обнаружил :D
wolf оперативно.

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

Re: Portable Far

Post by WARP ItSelf »

Ну а если так, серьезно подойти. Вот сделаем в Far сохранение конфигурации в файл, например. Получим следующие проблемы:

1. Плагины об этом не знают. Особенно будет плохо тем плагинам, которые читают настройки Far'а прямо из реестра. Проблема частично решается предоставлением плагинам интерфейса к сохранению/чтению собственных настроек. Но плагины придется переписать.

2. Старые (ANSI) плагины так и будут писать свои настройки в реестр и портить общую картину.

3. Макросы в виде .reg файлов станут бесполезны. Они будут импортироваться в реестр, но не читаться.

За вычетом пункта 2, все в общем-то решаемо. Однако какие будут мысли?
Никто не знал, а я...
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Portable Far

Post by Maximus5 »

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Portable Far

Post by Centaur »

Серьёзно такие вещи решаются только перехватом всех реестровых функций на уровне загрузчика. И гемора на этом пути будет Много.
User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Re: Portable Far

Post by WARP ItSelf »

1. Это все замечательно, но где же взять столько прав. Для RegLoadKey нужен SE_BACKUP_NAME, а его могут и не дать. И потом, сохранить уже имеющуюся ветку реестра можно. А вот как создать ее с нуля? Создать рандомную, записать в нее, экспортнуть?

2. Перехват вообще всего реестра это не вариант. Во всяком случае для реализации внутри Far'а. А так - там много мелкого гемора, но в принципе это возможно.

Это все как-то плохо сочетается с тем, для чего нужен портабельный вариант. Он наоборот должен упрощать запуск Far'а в условиях, когда "ничего нельзя". Ну и следов не оставлять.

P.S. В рамках Far'а предлагается все же рассмотреть вариант легального сервиса. И подумать, насколько оно в таком виде нужно. И какие есть подводные камни.
Никто не знал, а я...
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Portable Far

Post by Ariman »

WARP ItSelf wrote:1. Плагины об этом не знают. Особенно будет плохо тем плагинам, которые читают настройки Far'а прямо из реестра. Проблема частично решается предоставлением плагинам интерфейса к сохранению/чтению собственных настроек. Но плагины придется переписать.
Если уж это и делать, то сейчас. Пока количество юникодных плагинов относительно мало, и их приходиться все равно периодически править, вследствие изменений в API.
WARP ItSelf wrote:3. Макросы в виде .reg файлов станут бесполезны. Они будут импортироваться в реестр, но не читаться.
Тут вообще просто можно поступить. Вводим новый формат макро файла (эдакий скрипт получится), новая спец папка на винте, по типу плагиновой, с той же структурой, что и в реестре. Плюс, можно на коленке набросать конвертер с старого формата макросов в новый. Макродвижок расширится только на чтение макроса с файла.
Как побочный эффект, значительно упроститься создание/редактирование макросов. Все же проще структурированный файл править, чем все одной строкой в реестре.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Portable Far

Post by Skirda »

здесь нужно, IMHO, так (возможно повторюсь):
1. параметр ком.строк "/cfg " у которого либо путь к XML-файлу конфигурации, либо "REG" (в реестре), либо если не указан, то в реестре
2. старые плагины "за борт" - пусть пишут в реестр (все равно появляются новые плагины, перекрывающие функционал старых заброшенных)
3. добавить в API функции по работе с концигурацией и все новые (имеющие сорцы) плагины ОБЯЗАНЫ будут работать через эти функции
4. такая работа с конфигурацией должна быть во внешнем модуле...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
zg
zero-gravity
Posts: 6036
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Portable Far

Post by zg »

WARP ItSelf wrote:2. Старые (ANSI) плагины так и будут писать свои настройки в реестр и портить общую картину.
кто мешает хукать обращения к реестру? единственная проблема — регбравсер, но он живой.
User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Re: Portable Far

Post by WARP ItSelf »

zg

Никто не мешает, но там, во-первых, дохрена функций, а, во-вторых, это как-то некошерно держать такое в коде Far'а. Есть мнение, что это лишнее.
Никто не знал, а я...
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Portable Far

Post by HaRT »

А нельзя ли подключать hive, указанный в командной строке, и всю конфигурацию читать оттуда и писать туда?
Или для этого много прав надо?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Re: Portable Far

Post by WARP ItSelf »

HaRT

Чтобы писать и читать - его еще надо создать. Насколько я знаю, хайв создается как копия уже существующего раздела реестра. Т.е. надо сначала куда-то записать, а потом оттуда сохранить в хайв. Права тоже требуются специфические, но сходу не могу сказать - насколько право бэкапа это много. Ну и потом, если не эмулировать для старых плагинов ничего, то зачем хайв?
Никто не знал, а я...
User avatar
zg
zero-gravity
Posts: 6036
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Portable Far

Post by zg »

WARP ItSelf wrote:Никто не мешает, но там, во-первых, дохрена функций, а, во-вторых, это как-то некошерно держать такое в коде Far'а. Есть мнение, что это лишнее.
1. вряд ли плагины используют все функции работы с реестром.
2. хук для wow64 в коде фара есть. не вижу принципиальной разницы вообще.
Post Reply

Return to “Обсуждение Far Manager”