Latest post of the previous page:
я завел себе хоткей для перезагрузки плагина. если CtrlQ не сработал, перезапускаю, после чего гарантированно CtrlQ срабатывает.
Latest post of the previous page:
я завел себе хоткей для перезагрузки плагина. если CtrlQ не сработал, перезапускаю, после чего гарантированно CtrlQ срабатывает.
Code: Select all
local hotkey = "AltQ"
local nextHK = "CtrlPgDn"
local prevHK = "CtrlPgUp"
local temp = win.GetEnv('Temp') .. '\\far_mediainfo.media'
local mediaInfo = 'MediaInfo.exe'
local function ShowInfo()
if (APanel.Current == '..') then
win.system(mediaInfo .. ' . > "' .. temp .. '"')
else
win.system(mediaInfo .. ' "' .. APanel.Current .. '" > "' .. temp .. '"')
end;
local X1 = (PPanel.Left and 0 or APanel.Width) + 1
local Y1 = 0
local X2 = PPanel.Width + (PPanel.Left and 0 or APanel.Width) - 2
local Y2 = PPanel.Height - 2
local F = far.Flags
editor.Editor (temp, APanel.Current, X1, Y1, X2, Y2, F.EF_NONMODAL + F.EF_IMMEDIATERETURN + F.EF_DELETEONLYFILEONCLOSE + F.EF_DISABLEHISTORY + F.EF_LOCKED, nil, nil, 65001)
Keys('CtrlB')
end
local function InMediaInfo(Id, Event) return editor.GetFileName() == temp end
Macro {
description="MediaInfo";
area="Shell";
key=hotkey;
flags="NoPluginPanels";
action=ShowInfo;
}
Macro {
description="MediaInfo Down";
area="Editor";
key=nextHK;
flags="";
condition=InMediaInfo;
action=function()
Keys('CtrlB Esc Down')
ShowInfo()
end;
}
Macro {
description="MediaInfo Up";
area="Editor";
key=prevHK;
flags="";
condition=InMediaInfo;
action=function()
Keys('CtrlB Esc Up')
ShowInfo()
end;
}
Macro {
description="MediaInfo Esc";
area="Editor";
key="Esc F10";
flags="";
condition=InMediaInfo;
action=function()
Keys('CtrlB Esc')
end;
}
Code: Select all
local hkMain = "AltQ"
local hkNext = "CtrlDown"
local hkPrev = "CtrlUp"
local hkTop = "CtrlHome"
local hkBottom = "CtrlEnd"
local hkDirDn = "CtrlPgDn"
local hkDirUp = "CtrlPgUp"
local keysExit = 'CtrlB Esc'
local temp = win.GetEnv('Temp') .. '\\far_mediainfo.media'
local mediaInfo = 'D:\\test\\MediaInfo.exe'
local function ShowInfo()
if (APanel.Current == '..') then
win.system(mediaInfo .. ' . > "' .. temp .. '"')
else
win.system(mediaInfo .. ' "' .. APanel.Current .. '" > "' .. temp .. '"')
end;
local X1 = (PPanel.Left and 0 or APanel.Width) + 1
local Y1 = 0
local X2 = PPanel.Width + (PPanel.Left and 0 or APanel.Width) - 2
local Y2 = PPanel.Height - 2
local F = far.Flags
editor.Editor (temp, APanel.Current, X1, Y1, X2, Y2, F.EF_NONMODAL + F.EF_IMMEDIATERETURN + F.EF_DELETEONLYFILEONCLOSE + F.EF_DISABLEHISTORY + F.EF_LOCKED, nil, nil, 65001)
Keys('CtrlB')
end
local function InMediaInfo(Id, Event) return editor.GetFileName() == temp end
local function ShowInfoAfter(key)
Keys(keysExit .. ' ' .. key)
ShowInfo()
end
Macro {
description="MediaInfo";
area="Shell";
key=hkMain;
flags="NoPluginPanels";
action=ShowInfo;
}
Macro {
description="MediaInfo Down";
area="Editor";
key=hkNext;
condition=InMediaInfo;
action=function() ShowInfoAfter('Down') end;
}
Macro {
description="MediaInfo Up";
area="Editor";
key=hkPrev;
condition=InMediaInfo;
action=function() ShowInfoAfter('Up') end;
}
Macro {
description="MediaInfo Bottom";
area="Editor";
key=hkBottom;
condition=InMediaInfo;
action=function() ShowInfoAfter('End') end;
}
Macro {
description="MediaInfo Top";
area="Editor";
key=hkTop;
condition=InMediaInfo;
action=function() ShowInfoAfter('Home') end;
}
Macro {
description="MediaInfo Dir Down";
area="Editor";
key=hkDirDn;
condition=InMediaInfo;
action=function() ShowInfoAfter('CtrlPgDn') end;
}
Macro {
description="MediaInfo Dir Up";
area="Editor";
key=hkDirUp;
condition=InMediaInfo;
action=function()
if mf.len(win.GetCurrentDir()) > 3 then ShowInfoAfter('CtrlPgUp') end
end;
}
Macro {
description="MediaInfo Esc";
area="Editor";
key="Esc F10";
condition=InMediaInfo;
action=function() Keys(keysExit) end;
}
я для быстрого нажимаю Alt, отпускаю и потом ввожу (AltSearch.lua)
Plugin.SyncCall('919C1FC6-A571-4642-99DF-BDACE840ED18', <Имя_файла>)
Plugin.Command('919C1FC6-A571-4642-99DF-BDACE840ED18', '0.jpg')
), а на диалог повесить ивент для "выдирания" информации из DI_LISTBOX-а и закрытия диалога, но есть опасение, что на большом количестве фалов это будет работать годы.Plugin.SyncCall('919C1FC6-A571-4642-99DF-BDACE840ED18', [[C:\Windows\Themes\0.jpg]], "{Complete name,Format,Exif.Image.DateTime}")
Это-то понятно. Ради этого даже специальную версию выпускать не стоит. Просто если будете что-то ещё с ним делать, имеет, наверное, смысл как-то учесть. Это ж, наверно, надо не доделывать, а наоборот - выдать строку до преобразование в текст…
Попросили сделать панельный модуль обслуживания фотоальбомов, аналогичный этому. Если для музыки я ещё могу себе представить, какие данные могут понадобиться пользователю, то в фотографиях я вообще ничего не понимаю; надо делать настройку: дать юзеру выбрать из полного списка.