Plugin.Load(…) и Plugin.Unload(…), см. энциклопедию.
Можно ли из скрипта загрузить(выгрузить) плагин
Posted: Wed 22 Oct, 2014 14:10
by John Doe
Проще из меню пользователя, см. справку плагина FarCmds
Можно ли из скрипта загрузить(выгрузить) плагин
Posted: Thu 23 Oct, 2014 07:11
by KonovaPE
Спасибо. Подправил скрипт
RClick выделяет файл/ длинный RClick вызывает контекстное меню (c) IgorZ
... local EMPath = win.GetEnv("FARHOME").."\\Plugins\\EMenu\\EMenu.dll"
...
local function OnTimer()
timer:Close() timer = nil
if Mouse.Button==2 and (MouseClickOn==APanel.Path.."\\"..APanel.Current) then
Panel.Select(0,2,1) Plugin.Load(EMPath,0)
far.MacroPost('Plugin.Command("'..EMenu..'","rclk_txt:")')
end
MouseClickOn = ""
end
Я только не понимаю, зачем ВЫГРУЖАТЬ плагин??? (на счёт загрузки - польза есть -фар быстрее стартует, а вот выгружать... память что-ли экономить - ну так в наше время не критично...)
Можно ли из скрипта загрузить(выгрузить) плагин
Posted: Thu 23 Oct, 2014 20:39
by zg
SUSim wrote:Я только не понимаю, зачем ВЫГРУЖАТЬ плагин???
--[[---------------------------------------------------------------------------
Перезапуск плагина Air Brush от Zero Gravity zg
v.0.0.1.0
-------------------------------------------------------------------------------
[L]ctrlshift[F5]
Restart Air brush
-----------------------------------------------------------------------------]]
--Template GUIDS
local function TGUID () return{
cPluginID = "9860393A-918D-450F-A3EA-84186F21B0A2";
}end;
--Set GUIDS
local GUID=TGUID();
local AirBrushPath = win.GetEnv("FARHOME").."\\Plugins\\airbrush\\airbrush.dll"
local function AirBrushExist () return Plugin.Exist(GUID.cPluginID) end
--My ferst function
local function Plugin_AirBrush(command)
far.Message(AirBrushPath,akey(1),"Ok");
plugin.unload(AirBrushPath);
far.Message(AirBrushPath,akey(1),"Ok");
plugin.load(AirBrushPath,1);
end;
-- Macro
Macro {
area="Editor";
key="/[L]ctrlshift[F5]/";
description="Restart Air brush";
condition=AirBrushExist;
action=function()
Plugin_AirBrush();
-- mf.usermenu();
end;
}
-- end Macro
p.s.
Какой-же я некропостер однако...
Plugin.Unload
Posted: Sat 19 Dec, 2015 10:22
by Shmuel
cmd.exe wrote:
Shmuel wrote: UserMenu доступен из редактора, если вызывать из макроса: mf.usermenu().
Я ждал несколько более интересных предложений, например про plugin.load/unload
Мой пост не был предложением чего бы то ни было. Следующий раз надо будет думать: а достаточно ли интересно то, что пишу?
Plugin.Unload
Posted: Sat 19 Dec, 2015 10:32
by cmd.exe
Shmuel wrote: Мой пост не был предложением чего бы то ни было. Следующий раз надо будет думать: а достаточно ли интересно то, что пишу?
Почему оказалось что очень интересно, трассировку сделал, получил на выходе:
--[[---------------------------------------------------------------------------
Перезапуск плагина Air Brush от Zero Gravity zg
v.0.0.1.0
-------------------------------------------------------------------------------
[L]ctrlshift[F5]
Restart Air brush
-----------------------------------------------------------------------------]]
--Template GUIDS
local function TGUID () return{
cPluginID = "9860393A-918D-450F-A3EA-84186F21B0A2";
}end;
--Set GUIDS
local GUID=TGUID();
local AirBrushPath = win.GetEnv("ConEmuDir").."\\Plugins\\airbrush\\bin64\\airbrush.dll"
local function AirBrushExist () return Plugin.Exist(GUID.cPluginID) end
--My ferst function
local function Plugin_AirBrush(command)
far.Message(AirBrushPath,"Restart","Ok");
-- plugin.unload(AirBrushPath);
far.MacroCallFar(0x80C53,AirBrushPath)
-- far.Message(AirBrushPath,akey(1),"Ok");
-- plugin.load(AirBrushPath,1);
far.MacroCallFar(0x80C51,AirBrushPath,1);
end;
-- Macro
Macro {
area="Editor";
key="/[L]CtrlShiftF5/";
description="Restart Air brush";
condition=AirBrushExist;
action=function()
Plugin_AirBrush();
-- mf.usermenu();
end;
}
-- end Macro
Plugin.Unload
Posted: Sat 19 Dec, 2015 12:04
by zg
cmd.exe wrote:Я ждал несколько более интересных предложений, например про plugin.load/unload, который неработает совсем в последних билдах.