Перезапись с возможностью восстановления

Здесь обсуждается всё, что касается макросов.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Перезапись с возможностью восстановления

Post by iva »

Нельзя ли настроить Far так, чтобы при копировании и др. операциях с файлами в режиме Overwrite затираемый файл/файлы помещались бы в Корзину?

Примечание модератора
Пример реализации макросом см. ниже: http://forum.farmanager.com/viewtopic.p ... 91#p114891
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Перезапись с возможностью восстановления

Post by HaRT »

Такой настройки нет.
Если запишете соответствующее пожелание на багтрекер (ссылка Bugs вверху страницы), то увеличится шанс того, что оно не потеряется и рано или поздно заинтересует кого-то из разработчиков.
Фар есть инструмент, а не нянька. © 2009 DrKnS
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Re: Перезапись с возможностью восстановления

Post by iva »

Спасибо за разъяснение. На багтрекер написал (надеюсь, что в правильное место).
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Перезапись с возможностью восстановления

Post by HaRT »

iva wrote:На багтрекер написал (надеюсь, что в правильное место).
Хорошо бы тут ссылочку на вишь, а там ссылку на эту тему — для прослеживаемости.
Фар есть инструмент, а не нянька. © 2009 DrKnS
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Re: Перезапись с возможностью восстановления

Post by iva »

Ссылка на "вишь" http://bugs.farmanager.com/view.php?id=2536
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

Re: Перезапись с возможностью восстановления

Post by 2useven10 »

нарисуйте себе макрос.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Re: Перезапись с возможностью восстановления

Post by iva »

нарисуйте себе макрос.
Подскажите как его повесить его на нажатие кнопки <Overwrite>?
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

Re: Перезапись с возможностью восстановления

Post by 2useven10 »

Например
  1. local F = far.Flags
  2.  
  3. local OverwriteGUID = '9FBCB7E1-ACA2-475D-B40D-0F7365B632FF'
  4.  
  5. local OverwriteButn = 10
  6.  
  7.  
  8.  
  9. Event {
  10.  
  11.   group = 'DialogEvent';
  12.  
  13.   description = 'Overwrite with Recycle bin';
  14.  
  15.   action = function(Event, de)
  16.  
  17.     if  Dlg.Id    == OverwriteGUID
  18.  
  19.     and Event     == F.DE_DLGPROCINIT
  20.  
  21.     and de.Msg    == F.DN_CLOSE
  22.  
  23.     and de.Param1 == OverwriteButn
  24.  
  25.     then    
  26.  
  27.        -- ...
  28.  
  29.     end
  30.  
  31.   end;
  32.  
  33. }
Last edited by 2useven10 on Fri 29 Nov, 2013 12:26, edited 3 times in total.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Перезапись с возможностью восстановления

Post by HaRT »

2useven10
Здесь Корзина — Recycle bin
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

Re: Перезапись с возможностью восстановления

Post by 2useven10 »

@HaRT да. поправил...
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Re: Перезапись с возможностью восстановления

Post by iva »

Прекрасно! Думал, что теперь легко напишу макрос.
Если не выбирать "[ ] Remember choice" то мне казалось будет работать такой код:

Code: Select all

name=Dlg.GetValue(3)..'\0\0' 
res, err = win.SHFileOperation(name,'\0\0',win.FO_DELETE,win.FOF_ALLOWUNDO)
Но SHFileOperation не вызывается. Как правильно вызывать эту функцию?
А есть ли идея как обработать ситуацию с выбранной checkbox? Пока думаю о получении списка выбранных файлов с активной панели, поиск их в оглавлении из пассивной панели и удаление найденных. Но может есть более изящный способ?
И еще, подскажите, где вы узнаете идентификаторы объектов такие как '9FBCB7E1-ACA2-475D-B40D-0F7365B632FF'?
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

Re: Перезапись с возможностью восстановления

Post by 2useven10 »

Имена файлов, наверное, проще брать в APanel.xxx PPanel.xxx
Чтобы ф-я работала, возможно надо сначала преобразовать имя в юникод.
Гуиды, APanel... и много чего ещё можно подсмотреть при помощи
Lua Explorer или Lua Explorer 'Advanced'
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Re: Перезапись с возможностью восстановления

Post by iva »

Спасибо. С Lua Explorer-ами буду разбираться.
А функцию SHFileOperation система, как я понимаю, просто не находит: "attempt to call field 'SHFileOperation' (a nil value)". Может она не win? Может надо какой-то require?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Перезапись с возможностью восстановления

Post by Shmuel »

iva wrote:А функцию SHFileOperation система, как я понимаю, просто не находит: "attempt to call field 'SHFileOperation' (a nil value)". Может она не win? Может надо какой-то require?
Библиотека win документирована в файле %farhome%\Encyclopedia\luafar_manual.chm. Там перечислены все имеющиеся в ней функции. Если вам нужны другие функции, делайте свой байндинг или пользуйтесь FFI.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Re: Перезапись с возможностью восстановления

Post by iva »

Все понял. SHFileOperation в win нету. Тогда сдаюсь.
Post Reply

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