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

Место, где разработчики плагинов могут поделиться своим опытом.
2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Mon 25 Dec, 2017 12:12

Можно ли через far api в плагине получить аналог APanel.Path0 ?

Shmuel
Posts: 5697
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 200 times

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

Post by Shmuel » Mon 25 Dec, 2017 12:55

Не припомню прямого способа в 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;

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Mon 25 Dec, 2017 12:58

Для активной панели должно быть то же самое, что и http://api.farmanager.com/ru/fsf/getcur ... ctory.html

2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Mon 25 Dec, 2017 14:08

Для MacroControl() нужен luamacro/luafar3.dll ?

Сейчас нужно для активной, но для пассивной тоже было бы неплохо...
Получается у плагина нет доступа к Panel->GetDirectory() ?
Last edited by 2useven10 on Mon 25 Dec, 2017 14:09, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Mon 25 Dec, 2017 14:22

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

2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Mon 25 Dec, 2017 14:30

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

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

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

Post by zg » Mon 25 Dec, 2017 17:08

а каков вообще сценарий использования Path0?

2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Mon 25 Dec, 2017 21:12

Например, в arclite умолчательный каталог для распаковки из комстроки.
Last edited by 2useven10 on Mon 25 Dec, 2017 21:13, edited 1 time in total.

2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Mon 25 Dec, 2017 21:22

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

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

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

Post by zg » Mon 25 Dec, 2017 21:51

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

2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Mon 25 Dec, 2017 22:10

Думал, часа 3. Честного способа понять, что arclite работает с вложенным архивом я не нашёл.

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

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

Post by zg » Mon 25 Dec, 2017 22:24

фар знает, что архив вложенный, можно добавить в openanaliseinfo хэндл и гуид родительской панели.

2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Mon 25 Dec, 2017 22:29

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

2useven10
Posts: 3750
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

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

Post by 2useven10 » Tue 26 Dec, 2017 06:24

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

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Tue 26 Dec, 2017 07:15

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

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Tue 26 Dec, 2017 10:16

NightRoman wrote:
Tue 26 Dec, 2017 07:15
Но есть проблема, если панель сама запускается из плагиновой панели, тогда непонятно, как эту папку получить.
getcurrentdirectory не оно?

Post Reply

Return to “Разработка плагинов”