Макрос распаковывает файл в %TEMP% и открывает его

Здесь обсуждается всё, что касается макросов.
Post Reply
Zmey78
Posts: 30
Joined: Sun 22 Feb, 2015 16:37
Has thanked: 4 times
Contact:

Макрос распаковывает файл в %TEMP% и открывает его

Post by Zmey78 »

Макрос распаковывает файл по Shift+ENTER в %TEMP% и открывает его средствами Windows. Работает на всех панелях плагинов.

Пришлось написать, потому что в FAR не работает стандартный встроенный в Windows просмотр изображений по ENTER из архивов (например, ZIP). Пишет "Средству просмотра фотографий Windows не удалось открыть это изображение". Удалось выяснить, что в папке %TEMP% создается копия файла с изображением, но сразу же удаляется, поэтому просмотр ее не подхватывает.
  1. local F = far.Flags
  2.  
  3.  
  4.  
  5. Macro {
  6.  
  7.   description="Open from the temporary directory";
  8.  
  9.   area="Shell"; key="ShiftEnter";
  10.  
  11.   condition=function()
  12.  
  13.     local info,item = panel.GetPanelInfo(nil,1),panel.GetCurrentPanelItem(nil,1)
  14.  
  15.     return info.PanelType==F.PTYPE_FILEPANEL and bit64.band(info.Flags,F.PFLAGS_PLUGIN)==F.PFLAGS_PLUGIN and not item.FileAttributes:find("d")
  16.  
  17.   end;
  18.  
  19.   action=function()
  20.  
  21.     Keys('F5 Del % T E M P % AltT Enter')
  22.  
  23.     win.ShellExecute(nil,nil,win.GetEnv("TEMP").."\\"..panel.GetCurrentPanelItem(nil,1).FileName)
  24.  
  25.   end;
  26.  
  27. }
Файл положить сюда: "C:\Users\<ИМЯ ПОЛЬЗОВАТЕЛЯ>\AppData\Roaming\Far Manager\Profile\Macros\scripts\"
Panel.OpenFromTEMP.lua
(550 Bytes) Downloaded 263 times
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Макрос распаковывает файл в %TEMP% и открывает его

Post by HaRT »

Тему я перенёс. Прежде чем её там создавать, следовало прочитать правила того раздела в закреплённой теме. :evil:
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Макрос распаковывает файл в %TEMP% и открывает его

Post by Smitis »

Zmey78
Можно проверять, что панель принадлежит плагину ArcLite. Посмотрите, как у меня сделано здесь http://forum.farmanager.com/viewtopic.p ... 58#p141858
Разум когда-нибудь победит.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Макрос распаковывает файл в %TEMP% и открывает его

Post by HaRT »

Smitis wrote: Посмотрите, как у меня сделано здесь
При чём тут оно?:
Smitis wrote: для быстрого переключения ArcLite <> MultiArc находясь внутри архива, можно воспользоваться макросом
Задача-то решается совсем другая.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Макрос распаковывает файл в %TEMP% и открывает его

Post by Smitis »

HaRT wrote:Задача-то решается совсем другая.
:?:
Ясень пень, задача другая. Но у нас открыта панель плагина. Мало ли какой это плагин? Может с этой панели вообще не поддерживается копирование. Поэтому и предлагаю сделать проверку, что это плагин ArcLite. Можно и остальные, MultiArc, Observer, может ещё какие, не архивные. И на всякий случай можно сделать проверку, что нужный диалог открылся. И что после копирования ошибка не произошла (файл такой во временной папке уже есть и он залочен).

П.С.
Можно историю отключить, чтобы не засорялась Far.DisableHistory(-1)
Разум когда-нибудь победит.
Post Reply

Return to “Обсуждение макросов”