FileUnlock — принудительное закрытие файла

Здесь можно обсудить ваш любимый плагин.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: FileUnlock - принудительное закрытие файла

Post by zg »

Latest post of the previous page:

если файл открыт драйвером — Open handles not found.
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

Re: FileUnlock - принудительное закрытие файла

Post by artemsen »

artemsen wrote:Ограничение:
Far должен быть запущен с правами пользователя, не ниже чем процесс, открывший файл. Другими словами - если файл открыт под администратором, а плагин вызван из под обычного пользователя - результата не будет.
А драйвер - это режим ядра.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: FileUnlock — принудительное закрытие файла

Post by Maximus5 »

Зависает при попытке получить GetFinalPathNameByHandle на очередном дескрипторе (GetFinalPathNameByHandle).
Виснет не сразу, а обработав несколько десятков тыщ дескрипторов за пару секунд. Зависает все время на одном и том же (если список процессов не меняется).

ProcList для них кажет пустой путь. Прибил подряд 3 процесса, на которых зависало. После зависания на far.exe (единственном в системе) надоело :P



особо цинично выглядит DuplicateHandle для самого себя. Hint, (process != currProc) не правильно.

Win7 х64, Far х86

в архив FarFileUnlock_1.0_src.zip попала пустая папка SQLite
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

Re: FileUnlock — принудительное закрытие файла

Post by artemsen »

1. Виснет скорее всего на пайпе, поправлю.
2. DuplicateHandle не для себя, там хендл другого процесса
3. (process != currProc) - чем не понравился?
4. SQLite - копипаст, поправлю :-)
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: FileUnlock — принудительное закрытие файла

Post by Maximus5 »

Как я уже сказал, виснет и на самом фаре. Так что твое условие с currProc не работает. Да и с чего ему работать? OpenProcess никогда не даст то же значение, что GetCurrentProcess
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

Re: FileUnlock — принудительное закрытие файла

Post by artemsen »

Да, с GetCurrentProcess я действительно ступил, поправлю.
User avatar
lordmuzer
Posts: 533
Joined: Mon 12 Nov, 2007 22:05
Location: Киев
Has thanked: 20 times
Contact:

Re: FileUnlock — принудительное закрытие файла

Post by lordmuzer »

обновил до версии 1,1,1.
стало работать на XP, спасибо!

попробовал вызвать для своего же каталога (\far2\plugins\fileunlock), когда на пассивной панели был этот же каталог - фар завис намертво.
до сих пор не могу снять задачу )
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: FileUnlock — принудительное закрытие файла

Post by Kerberos464 »

версия 1.1.1 и у меня заработала, спасибо :)
но вот что выдаёт для файла:

хотя этот файл заблокирован, его не удаётся удалить.
это разновидность случая, о котором говорил zg?
win7 x86, far 2.0.1768, комп вне домена, права админа, uac выключен.

add. хм, вызываю плагин на папке самого плагина, тоже говорит, что "Open handles not found".
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

Re: FileUnlock — принудительное закрытие файла

Post by artemsen »

Да, именно так. Этот файл используется системой, а не пользовательскими приложениями.
По поводу "плагин на папке самого плагина" - в папку нужно войти.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: FileUnlock — принудительное закрытие файла

Post by Maximus5 »

artemsen wrote:Да, именно так. Этот файл используется системой, а не пользовательскими приложениями.
Ну, как минимум, можно проверять список загруженных модулей (это ведь тоже "блокировка").
Правда, нужно аккуратно проверять x86модули из x64фара. А для проверки x64модулей из x86фара нужен процесс-враппер (64битный)
User avatar
lordmuzer
Posts: 533
Joined: Mon 12 Nov, 2007 22:05
Location: Киев
Has thanked: 20 times
Contact:

Re: FileUnlock — принудительное закрытие файла

Post by lordmuzer »

artemsen wrote:Да, именно так. Этот файл используется системой, а не пользовательскими приложениями.
может сейчас глупость скажу, но, а нельзя ли хотя бы просто подать признак что файл может быть занять системой ?
artemsen wrote:По поводу "плагин на папке самого плагина" - в папку нужно войти.
а что это даст?
проблема не в том, что плагин не нашел ничего, а в том что повис, причем довольно сильно.
помогла перезагрузка. но больше повторить не смог. пока что ломаю)
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

Re: FileUnlock — принудительное закрытие файла

Post by artemsen »

Maximus5 wrote:Ну, как минимум, можно проверять список загруженных модулей (это ведь тоже "блокировка").
Не уловил мысль. WindowsUpdate.log - это не загружаемый модуль.
lordmuzer wrote:проблема не в том, что плагин не нашел ничего, а в том что повис, причем довольно сильно.
помогла перезагрузка. но больше повторить не смог. пока что ломаю)
Так вот я и воспроизвести не могу. XP+Far x32?
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: FileUnlock — принудительное закрытие файла

Post by Maximus5 »

Не, речь шла не о .log, а о папке плагина. Ведь "из нее" загружена сама ".dll"? Или для .dll/папки и без этого работает?
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

Re: FileUnlock — принудительное закрытие файла

Post by artemsen »

Для папки и так работает (должно по крайней мере). А dll пока только в планах.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: FileUnlock — принудительное закрытие файла

Post by Maximus5 »

А префикс будет(есть)? Смысл в том, чтобы понять кто блокирует флешку, когда ее отключить не получается.
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

Re: FileUnlock — принудительное закрытие файла

Post by artemsen »

Да, префикс добавлю.
Post Reply

Return to “Обсуждение плагинов”