Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вернуть процесс по имени файла. / 16 сообщений из 16, страница 1 из 1
13.02.2014, 17:50
    #38560203
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
Ну проблема простая есть файл, скажем tmp.doc, он занят процессом. Очень хочется вернуть процесс исходя из названия файла, а не приложения которое его держит(в данном случае WINWORD) не юзая ту же Handle. Нигде в свойствах процесса, найти ссылку на полный путь к файлу не удается, хотя MainWindowTitle содержит его название без пути. Желательно, не лезя на уровень CIL.
Простите за внимание.
...
Рейтинг: 0 / 0
14.02.2014, 11:01
    #38560738
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
Среди этого... желаемого не оказалось?
http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-net
...
Рейтинг: 0 / 0
14.02.2014, 11:08
    #38560755
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
buserСреди этого... желаемого не оказалось?
http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-net
я в свое время пытался приспособить то, что по ссылке - перепробовал все варианты. Не взлетело. Либо проблемы с правами учетки, под которой запускается, либо с переносимостью между версиями windows, либо просто тупо не работает.
...
Рейтинг: 0 / 0
14.02.2014, 11:56
    #38560816
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
Сон Веры Павловныя в свое время пытался приспособить то, что по ссылке - перепробовал все варианты. Не взлетело. Либо проблемы с правами учетки, под которой запускается, либо с переносимостью между версиями windows, либо просто тупо не работает.
Аналогично. Вчера весь день ковырял.
...
Рейтинг: 0 / 0
14.02.2014, 12:09
    #38560834
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
ALOTE, а результаты работы Handle Вас устраивают, но не хотся стартовать внешний процесс?
...
Рейтинг: 0 / 0
14.02.2014, 12:28
    #38560867
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
buser,

Handle меня не устраивает, потому что требует админских прав, а мое приложение используется, в том числе юзерами, которые этих прав не имеют.
...
Рейтинг: 0 / 0
14.02.2014, 12:29
    #38560870
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
ПыСы в принципе, если кто знает куда копнуть в сторону CIL, я уже и на это согласен. Заодно покопаюсь в нем, что душеполезно.
...
Рейтинг: 0 / 0
14.02.2014, 12:43
    #38560891
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
ALOTE, так чудес-то не бывает... и копать придется, скорее всего в сторону WinAPI
ну и... это... можно же крутить отдельный процесс с достаточными привилегиями и общаться клиент будет уже с этим... эээ... сервисом :)
...
Рейтинг: 0 / 0
14.02.2014, 12:47
    #38560893
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
Кстати, утро вечера мудренее, посему видать, сейчас удалось, запустить первый вариант из http://stackoverflow.com/questions/860656/using-c-how-does-one-figure-out-what-process-locked-a-file. Пока ругается через раз, поэтому, думаю, потребуется обработка напильником, но все таки работает из под 7-ки, хоть и не стабильно. Надо будет еще под 8-й погонять.
...
Рейтинг: 0 / 0
14.02.2014, 12:49
    #38560895
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
...
Рейтинг: 0 / 0
14.02.2014, 12:56
    #38560900
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
Да процесс убить удалось. Теперь есть вопрос позаковыристей. Когда убивается процесс WINWORD, то закрываются все файлы WORD. Предвкушаю справедливое возмущение юзеров, у которых будут пропадать не сохраненные документы(предупреждение они ступодофф проигнорируют), посему интересно было бы не убивать процесс, а перехватить управление им, и из него закрывать нужный мне файл. По факту нужно получить ссылку на Word.Application из определенного процесса.
...
Рейтинг: 0 / 0
14.02.2014, 13:07
    #38560916
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
А, ну получить это легко оказалось
Word.Application myWord = new Word.Application(myProcess);
Щас копаю, как из него файл закрыть.
...
Рейтинг: 0 / 0
14.02.2014, 14:49
    #38561093
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
Забил, вывел предупреждение что бы файлы Word сохраняли, во избежании, а то чую, заказчик не очень доволен будет, если я пару дней себе в удовольствие в WinAPI копаться буду. Но проблема актуальная, если кто знает как закрыть открытый процессом файл, зная и файл и процесс без убийства процесса, телеграфируйте, буду благодарен, при том ни я один.
...
Рейтинг: 0 / 0
14.02.2014, 15:39
    #38561192
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
Ну таки снова через API CreateRemotethread ( http://www.codeguru.com/cpp/w-p/files/fileio/article.php/c1287/Deleting-Locked-Files.htm)
НО... это не гарантирует вам ничего... ни защиты от возможного креша этой аликухи ни от дедлока...
...
Рейтинг: 0 / 0
14.02.2014, 15:40
    #38561194
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
P.S.: и на дебуг привилегии обратите внимание
...
Рейтинг: 0 / 0
14.02.2014, 16:24
    #38561250
ALOTE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть процесс по имени файла.
buser,
Спасибо большое, весьма полезная ссылка.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вернуть процесс по имени файла. / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]