wrapper гонит?

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 11
Joined: Wed Sep 20, 2006 8:04 am

wrapper гонит?

Post by VitRom »

3.11+ задолбал тупейший глюк: при открытии только что созданного файла не открывает его, а предлагает создать.

Очень ясно проявляется при чтении всяких ридми из-под файл-менеджера 7-zip. Релизный 7-zip 4.32, в настройках "редактор" оставлен пустым (т.е. по дефолту юзается notepad). При нажатии F4 на текстовике Акел выпрыгивает и бодро предлагает создать файл. При выходе по Esc и тут же повторном F4 - файл открывается.

С другими "notepad-ами" (стандартный, Акел 2) такого не бывает никогда.

Похоже, сабж?

Тогда, может, всё-таки принять мысли из Запрос функции - изменение пути до плагинов - "свалить всё в кучу" со стандартизованными именами и не тратить время на "обёртки"?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Скачал 7-Zip 4.42. Заменил блокнот AkelPad'ом 3.1.3. Проблем не вижу.

Edit:
Скачал 7-Zip 4.32. Также проблем нету, как при открытии файлов вне архива, так и из них.

Offline
Posts: 12
Joined: Wed Sep 13, 2006 12:59 pm

Re: wrapper гонит?

Post by Natrio »

VitRom
при открытии только что созданного файла не открывает его, а предлагает создать
Не "только что созданного", а "только что удаленного".

Instructor, эффект имеет место быть.
И с 7-zip 4.32, и с 7-zip 4.42.

Все очень просто.
При открытии файла из архива Файл-менежер 7-zip создает временную папку в системной Temp, и распаковывает туда этот файл.
Потом запускается программа-редактор, которой в командной строке передается путь к файлу.
Файл-менежер 7-zip ожидает завершения запущенной ИМ программы и дождавшись, удаляет временную папку вместе с файлом.

В качестве редактора "по умолчанию" Файл-менежер 7-zip запускает Windows\notepad.exe . А в случае с AkelPad 3, установленным вместо "Блокнота" там находится не сам редактор, а программа-редиректор, которая запускает AkelPad с трансляцией командной строки и тут же завершается, так что когда настоящий AkelPad пытается открыть требуемый файл, - файл уже не существует, и AkelPad стандартно предлагает его создать.

Варианты решения своими силами:
  • В настройках файл-менежера 7-zip указать прямой путь к AkelPad (WINDOWS\system32\notepad.exe или Program Files\AkelPad\AkelPad.exe) , а не к редиректору.
  • Самостоятельно сделать редиректор, который будет завершаться только дождавшись завершения AkelPad.
Возможные варианты решения со стороны автора AkelPad 3 :
  • Так же переделать редиректор.
  • Заменить редиректор полноценной копией AkelPad, которая могла бы находить путь к своей "родной" папке в реестре или в специальном ini-файле, лежащем в той же папке, что и копия AkelPad.
Вариантов решения со стороны автора 7-zip я не вижу - довольно проблематично отследить "настоящий" редактор за цепочкой редиректоров, если же полагаться на "занятость" самого распакованного файла, то AkelPad 3, на сколько мне известно, не "занимает" его постоянно, потому-то и есть у него опция "отслеживать изменения".
Last edited by Natrio on Thu Oct 26, 2006 1:02 pm, edited 1 time in total.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Natrio
Так то, оно все так. Странно то, что я в настройках 7-zip указал путь к редиректору (\WINDOWS\notepad.exe) и все работает (Windows XP SP2).

Offline
Posts: 12
Joined: Wed Sep 13, 2006 12:59 pm

Post by Natrio »

Instructor
Natrio
Так то, оно все так. Странно то, что я в настройках 7-zip указал путь к редиректору (\WINDOWS\notepad.exe) и все работает (Windows XP SP2).
И у меня Windows XP SP2.
Если открывать по F4, то запускается редактор, указанный в настройках 7-zip, а если через Enter или клик мышью - программа, ассоциированная с этим типом файлов. Если у вас ассоциирован сам AkelPad, а не редиректор, то все работает.

Так же возможно, что у вас 7-zip просто не успевает удалить файл до открытия в AkelPad .

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

...не успевает удалить файл...
Сразу представляется злостный файловый менеджер 7-zip'a :) Редиректор трогать не буду, выход как уже писалось выставить путь к "\windows\system32\notepad.exe".

Offline
Posts: 11
Joined: Wed Sep 20, 2006 8:04 am

Post by VitRom »

злостный файловый менеджер 7-zip'a :)
...ищет в реестре редактор по дефолту для текстовых файлов. Той же логикой пользуются и другие проги (если не вызывают по хоткею - так из контекстного меню). Навскидку не вспомню, но сюда относятся, кажется, WinISO (или UltraISO), WinImage, ISO Buster... NetSupport Remote Control (его встроенный ФМ) тоже... Можно ещё с десяток примеров набрать (только не я - я уже снова НТФС-линк сделал).
Редиректор трогать не буду, выход как уже писалось выставить путь к "\windows\system32\notepad.exe".
Правильно, что его трогать?! Выкинуть - и всего делов! ;) Как совершенно правильно сказал Natrio, эффект имеет место. И он же совершенно правильно объяснил, как это происходит. А я только что привёл очень неполный список примеров. В каждом из которых нужно править настройки, хотя с дефолтным блокнотом такой нужды нет, и вполне можно их не открывать вообще.
Вывод: редиректоры - ф топку! :)

И, кстати, раз уж не нравится мой подход (всё рядом), то чем же не устраивает ИНИ-шник?!

Только искать его надо в двух местах - рядом и в %систем32%.

ЗЫ. А что с "notify me when reply"?! Не пашет, блин...

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Natrio & VitRom
Нашел подходящее решение для реализации "ожидающего" редиректора. Лежит на CVS (http://akelpad.cvs.sourceforge.net/akel ... p/Redirect).

Offline
Posts: 11
Joined: Wed Sep 20, 2006 8:04 am

Post by VitRom »

Похоже, помогло - пока работает без замечаний.
Хотя вид дерева процессов... не то напрягает, не то веселит :)

Всё-таки попахивает от этого злостным KISS principle violation ;)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

"Everything should be made as simple as possible, but no simpler". :)
Post Reply