|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Ну проблема простая есть файл, скажем tmp.doc, он занят процессом. Очень хочется вернуть процесс исходя из названия файла, а не приложения которое его держит(в данном случае WINWORD) не юзая ту же Handle. Нигде в свойствах процесса, найти ссылку на полный путь к файлу не удается, хотя MainWindowTitle содержит его название без пути. Желательно, не лезя на уровень CIL. Простите за внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2014, 17:50 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Среди этого... желаемого не оказалось? http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-net ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 11:01 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
buserСреди этого... желаемого не оказалось? http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-net я в свое время пытался приспособить то, что по ссылке - перепробовал все варианты. Не взлетело. Либо проблемы с правами учетки, под которой запускается, либо с переносимостью между версиями windows, либо просто тупо не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 11:08 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Сон Веры Павловныя в свое время пытался приспособить то, что по ссылке - перепробовал все варианты. Не взлетело. Либо проблемы с правами учетки, под которой запускается, либо с переносимостью между версиями windows, либо просто тупо не работает. Аналогично. Вчера весь день ковырял. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 11:56 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
ALOTE, а результаты работы Handle Вас устраивают, но не хотся стартовать внешний процесс? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 12:09 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
buser, Handle меня не устраивает, потому что требует админских прав, а мое приложение используется, в том числе юзерами, которые этих прав не имеют. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 12:28 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
ПыСы в принципе, если кто знает куда копнуть в сторону CIL, я уже и на это согласен. Заодно покопаюсь в нем, что душеполезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 12:29 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
ALOTE, так чудес-то не бывает... и копать придется, скорее всего в сторону WinAPI ну и... это... можно же крутить отдельный процесс с достаточными привилегиями и общаться клиент будет уже с этим... эээ... сервисом :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 12:43 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Кстати, утро вечера мудренее, посему видать, сейчас удалось, запустить первый вариант из http://stackoverflow.com/questions/860656/using-c-how-does-one-figure-out-what-process-locked-a-file. Пока ругается через раз, поэтому, думаю, потребуется обработка напильником, но все таки работает из под 7-ки, хоть и не стабильно. Надо будет еще под 8-й погонять. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 12:47 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Вот еще одна проекция: http://hintdesk.com/c-get-all-files-being-accessed-by-a-process-in-64-bits/ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 12:49 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Да процесс убить удалось. Теперь есть вопрос позаковыристей. Когда убивается процесс WINWORD, то закрываются все файлы WORD. Предвкушаю справедливое возмущение юзеров, у которых будут пропадать не сохраненные документы(предупреждение они ступодофф проигнорируют), посему интересно было бы не убивать процесс, а перехватить управление им, и из него закрывать нужный мне файл. По факту нужно получить ссылку на Word.Application из определенного процесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 12:56 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
А, ну получить это легко оказалось Word.Application myWord = new Word.Application(myProcess); Щас копаю, как из него файл закрыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 13:07 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Забил, вывел предупреждение что бы файлы Word сохраняли, во избежании, а то чую, заказчик не очень доволен будет, если я пару дней себе в удовольствие в WinAPI копаться буду. Но проблема актуальная, если кто знает как закрыть открытый процессом файл, зная и файл и процесс без убийства процесса, телеграфируйте, буду благодарен, при том ни я один. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 14:49 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
Ну таки снова через API CreateRemotethread ( http://www.codeguru.com/cpp/w-p/files/fileio/article.php/c1287/Deleting-Locked-Files.htm) НО... это не гарантирует вам ничего... ни защиты от возможного креша этой аликухи ни от дедлока... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 15:39 |
|
Вернуть процесс по имени файла.
|
|||
---|---|---|---|
#18+
P.S.: и на дебуг привилегии обратите внимание ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2014, 15:40 |
|
|
start [/forum/topic.php?fid=20&msg=38560834&tid=1403270]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 152ms |
0 / 0 |