Page 1 of 1
Макрос распаковывает файл в %TEMP% и открывает его
Posted: Wed 14 Dec, 2016 17:10
by Zmey78
Макрос распаковывает файл по Shift+ENTER в %TEMP% и открывает его средствами Windows. Работает на всех панелях плагинов.
Пришлось написать, потому что в FAR не работает стандартный встроенный в Windows просмотр изображений по ENTER из архивов (например, ZIP). Пишет "Средству просмотра фотографий Windows не удалось открыть это изображение". Удалось выяснить, что в папке %TEMP% создается копия файла с изображением, но сразу же удаляется, поэтому просмотр ее не подхватывает.
local F = far.Flags
Macro {
description="Open from the temporary directory";
area="Shell"; key="ShiftEnter";
condition=function()
local info,item = panel.GetPanelInfo(nil,1),panel.GetCurrentPanelItem(nil,1)
return info.PanelType==F.PTYPE_FILEPANEL and bit64.band(info.Flags,F.PFLAGS_PLUGIN)==F.PFLAGS_PLUGIN and not item.FileAttributes:find("d")
end;
action=function()
Keys('F5 Del % T E M P % AltT Enter')
win.ShellExecute(nil,nil,win.GetEnv("TEMP").."\\"..panel.GetCurrentPanelItem(nil,1).FileName)
end;
}
Файл положить сюда: "C:\Users\<ИМЯ ПОЛЬЗОВАТЕЛЯ>\AppData\Roaming\Far Manager\Profile\Macros\scripts\"
Макрос распаковывает файл в %TEMP% и открывает его
Posted: Wed 14 Dec, 2016 18:27
by HaRT
Тему я перенёс. Прежде чем её там создавать, следовало прочитать правила того раздела в закреплённой теме.
Макрос распаковывает файл в %TEMP% и открывает его
Posted: Wed 14 Dec, 2016 19:33
by Smitis
Zmey78
Можно проверять, что панель принадлежит плагину ArcLite. Посмотрите, как у меня сделано здесь
http://forum.farmanager.com/viewtopic.p ... 58#p141858
Макрос распаковывает файл в %TEMP% и открывает его
Posted: Wed 14 Dec, 2016 20:51
by HaRT
Smitis wrote: Посмотрите, как у меня сделано здесь
При чём тут оно?:
Smitis wrote: для быстрого переключения ArcLite <> MultiArc находясь внутри архива, можно воспользоваться макросом
Задача-то решается совсем другая.
Макрос распаковывает файл в %TEMP% и открывает его
Posted: Thu 15 Dec, 2016 08:37
by Smitis
HaRT wrote:Задача-то решается совсем другая.
Ясень пень, задача другая. Но у нас открыта панель плагина. Мало ли какой это плагин? Может с этой панели вообще не поддерживается копирование. Поэтому и предлагаю сделать проверку, что это плагин ArcLite. Можно и остальные, MultiArc, Observer, может ещё какие, не архивные. И на всякий случай можно сделать проверку, что нужный диалог открылся. И что после копирования ошибка не произошла (файл такой во временной папке уже есть и он залочен).
П.С.
Можно историю отключить, чтобы не засорялась Far.DisableHistory(-1)