Макрос (работа с панелями) глючит, подскажите как лечить!

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Zmey78
Posts: 26
Joined: Sun 22 Feb, 2015 16:37
Has thanked: 2 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Zmey78 » Tue 13 Dec, 2016 14:49

Пишу макрос под эту задачу: http://forum.farmanager.com/viewtopic.php?t=10570

Работает очень нестабильно, раза 2 срабатывает, а затем уже почему-то реагирует на Enter только стандартным образом. Иногда перезапуск FAR ненадолго помогает, иногда нет. Far 3.0 build 4747 (x64).

  1. local F = far.Flags
  2.  
  3. Macro {
  4.   description="Open from the temporary directory";
  5.   area="Shell"; key="Enter";
  6.   condition=function()
  7.     local info = panel.GetPanelInfo(nil,1)
  8.     local item = panel.GetCurrentPanelItem(nil,1)
  9.     if info.PanelType==F.PTYPE_FILEPANEL and bit64.band(info.Flags,F.PFLAGS_PLUGIN)~=0 and not item.FileAttributes:find("d") then
  10.       return true
  11.     end
  12.   end;
  13.   action=function()
  14.     Keys('F5 Del % T E M P % AltT Enter')
  15.     win.ShellExecute(nil,nil,win.GetEnv("TEMP").."\\"..panel.GetCurrentPanelItem(nil,1).FileName)
  16.   end;
  17. }


Кладу сюда: "C:\Users\Alexey\AppData\Roaming\Far Manager\Profile\Macros\scripts\Panel.Open.lua"
Last edited by Zmey78 on Wed 14 Dec, 2016 12:07, edited 2 times in total.

Zmey78
Posts: 26
Joined: Sun 22 Feb, 2015 16:37
Has thanked: 2 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Zmey78 » Wed 14 Dec, 2016 14:02

Zmey78 wrote:Source of the post if info.PanelType==F.PTYPE_FILEPANEL and bit64.band(info.Flags,F.PFLAGS_PLUGIN)~=0 and not item.FileAttributes:find("d") then


Я подозреваю вот эту часть:
1) надо ли заключать условия в () между and?
2) правильно ли использую функцию find?
3) надо ли сравнивать с nil то, что возвращает эта функция?

Shmuel
Posts: 4954
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 124 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Shmuel » Wed 14 Dec, 2016 14:09

1. В данном случае это не обязательно, т.е. и так правильно.
2. Да.
3. Нет, функция ShellExecute всегда возвращает целое число.
Меня несколько смущает AltT в вашем макросе.

Zmey78
Posts: 26
Joined: Sun 22 Feb, 2015 16:37
Has thanked: 2 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Zmey78 » Wed 14 Dec, 2016 15:54

3. Я про not item.FileAttributes:find("d") и нужно ли мне сравнивать с nil?
AltT работает, это для отметки пункта "перезаписывать существующие".

Shmuel
Posts: 4954
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 124 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Shmuel » Wed 14 Dec, 2016 16:29

Zmey78 wrote:Source of the post 3. Я про not item.FileAttributes:find("d") и нужно ли мне сравнивать с nil?
Не нужно. Так, как у вас сделано - это эквивалентно сравнению с nil.
Zmey78 wrote:Source of the post AltT работает, это для отметки пункта "перезаписывать существующие".
У меня английский интерфейс, там AltT исполняет другую функцию.
Last edited by Shmuel on Wed 14 Dec, 2016 16:35, edited 1 time in total.

Zmey78
Posts: 26
Joined: Sun 22 Feb, 2015 16:37
Has thanked: 2 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Zmey78 » Wed 14 Dec, 2016 17:11

Написал, теперь все нормально:
http://forum.farmanager.com/viewtopic.php?f=60&t=10579

Shmuel
Posts: 4954
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 124 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Shmuel » Wed 14 Dec, 2016 17:36

Zmey78 wrote:Source of the post Написал, теперь все нормально:
И в чём же была проблема? Сравнение старой версии (которая у вас глючила) и новой показывает только косметические различия.

Zmey78
Posts: 26
Joined: Sun 22 Feb, 2015 16:37
Has thanked: 2 times

Макрос (работа с панелями) глючит, подскажите как лечить!

Postby Zmey78 » Wed 14 Dec, 2016 18:07

Shmuel wrote:Source of the post в чём же была проблема

Так и не понял, но теперь не глючит. Версия Far та же.


Return to “Нужна помощь”

Who is online

Users browsing this forum: No registered users and 2 guests