kostyanet » 10.06.2006 (Сб) 20:19
Если конкретно, то речь идет о такой прогре как CorelDraw и такой как Photoshop. Мне нужно не закрывая этих монстров управлять файлами и главным образом папками проектов. Проект закончен - папка из рабочего каталога перемещается в архив, бэкапится и все такое. Речь идет о рабочей группе, а не домашнем компе - то есть, ресурсы аккумулируются в одном месте.
Так вот, идея сменить программе текущий каталог хорошая. Но как это сделать извне?
Убить хэндл можно. Но как и ожидается происходит сбой и прогры, особенно Корел, начинают глючить. Приходится перегружать - а тогда какая разница - можно и выгрузить на время.
Эта проблема не позволяет создать прозрачный менеджмент, то есть, чтобы не пользовател мувал свое файло, а чтобы програ по сведениям взятым из базы это делала сама. Там надстройка над файловой системой есть - клиент базы данных с развитыми файловыми фитчами. Из-за падучей в результате прикрытия хэндла пришлось отказаться от этого - теперь только проверяет - заблокировано или нет.
Да, а проверяет так. С сайта sysinternals взят handle.exe - консольная програ - которая запускается через cmd.exe и по тому самому досявому "трубопроводу" возвращает таблицу - отчет, который анализируется и тем самым определяется - есть данный ресурс в ней, или нет. Если есть - заблокирован.
Так вот, было бы круто не убивать хэндл, а заменить его. Например создать такой же, но на другой ресурс, даже на реальную папку где-нибудь, и заменить.
Убиванием занималась dll'ка, которую мне знакомый написал за спасибо, я с ним контакт уже потерял, а тут наткнулся на этот форум и решил попробовать спросить.
Может есть какие-нить идеи?
Да, еще убить управление можно еще одной апликухой той же конторы - process explorer'ом. Ну, не важно - убивать нельзя, как-то надо лечить.
Честно говоря, помню, тогда наверное неделю потратил на то, чтобы убедиться в том что ответа на вопрос how to determine file handle ownership не существует. Хотя, буквально сразу налетел на справку от МС, что, типа, это вы можете узнать у сисинтерналса, ага. Но еще искал и спрашивал пока не вернулся к тому, с чего начал - к той самой конторе.
Начинал я еще в Вин95 (то есть, Миллениуме) это делать - там ничего не блокировалось и все пластилинова мувалось. А в ХР началось!