Page 1 of 2

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 12:12
by 2useven10
Можно ли через far api в плагине получить аналог APanel.Path0 ?

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 12:55
by Shmuel
Не припомню прямого способа в API. Однако можно так:

Code: Select all

string Path0;
MacroExecuteString data = { sizeof(MacroExecuteString),0,L"return APanel.Path0",0,nullptr,0,nullptr };
if (Info.MacroControl(&Guid,MCTL_EXECSTRING,0,&data) && data.OutValues[0].Type == FMVT_STRING)
  Path0 = data.OutValues[0].String;

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 12:58
by John Doe
Для активной панели должно быть то же самое, что и http://api.farmanager.com/ru/fsf/getcur ... ctory.html

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 14:08
by 2useven10
Для MacroControl() нужен luamacro/luafar3.dll ?

Сейчас нужно для активной, но для пассивной тоже было бы неплохо...
Получается у плагина нет доступа к Panel->GetDirectory() ?

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 14:22
by John Doe
2useven10 wrote: Mon 25 Dec, 2017 14:08Для MacroControl() нужен luamacro/luafar3.dll ?
Нужен
2useven10 wrote: Mon 25 Dec, 2017 14:08Сейчас нужно для активной, но для пассивной тоже было бы неплохо...
Через FCTL_SETACTIVEPANEL?

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 14:30
by 2useven10
John Doe wrote: Mon 25 Dec, 2017 14:22Через FCTL_SETACTIVEPANEL?
Да с бубном можно.

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 17:08
by zg
а каков вообще сценарий использования Path0?

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 21:12
by 2useven10
Например, в arclite умолчательный каталог для распаковки из комстроки.

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 21:22
by 2useven10
Хотя нет там обычно в архив ещё не вошли.
Пытался добавить (возможно сомнительный) ии, если путь к архиву ведёт во временный каталог, а архив открыли в 'нормальном' каталоге,
тогда считаем, что архив вложенный.

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 21:51
by zg
через префикс можно открыть архив из временного каталога находясь в обычном. в данной ситуации надо просто подумать о нормальном механизме, а не лепить странные костыли.

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 22:10
by 2useven10
Думал, часа 3. Честного способа понять, что arclite работает с вложенным архивом я не нашёл.

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 22:24
by zg
фар знает, что архив вложенный, можно добавить в openanaliseinfo хэндл и гуид родительской панели.

APanel.Path0 -- как получить аналог из плагина?

Posted: Mon 25 Dec, 2017 22:29
by 2useven10
Я, к сожалению, очень плохо ориентируюсь во взаимодействии фар с плагинами.
Если это можно добавить - было бы здорово.

APanel.Path0 -- как получить аналог из плагина?

Posted: Tue 26 Dec, 2017 06:24
by 2useven10
zg wrote: Mon 25 Dec, 2017 22:24можно добавить в openanaliseinfo
Если открывать через префикс, этой информации всё равно не будет ?

APanel.Path0 -- как получить аналог из плагина?

Posted: Tue 26 Dec, 2017 07:15
by NightRoman
zg wrote: Mon 25 Dec, 2017 17:08а каков вообще сценарий использования Path0?
Для сохранения на диск чего-то с панели папка по умолчанию была бы очень полезна. В своем плагине пока запоминаю текущую папку при старте панели. В принципе, так жить можно. Но есть проблема, если панель сама запускается из плагиновой панели, тогда непонятно, как эту папку получить.