|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.03.2012, 00:02 | #1 |
Форумчанин
Регистрация: 16.04.2011
Сообщений: 126
|
Pid процесса, который использует файл.
Как можно определить pid процесса, который использует файл, путь к которому известен?
|
15.03.2012, 09:57 | #2 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
Возможно здесь найдешь ответ http://wasm.ru/article.php?article=lockfileswork
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
19.03.2012, 12:54 | #3 |
Форумчанин
Регистрация: 16.04.2011
Сообщений: 126
|
а как забрать у процесса файл, который его использует?
там вроде такого не написано. |
19.03.2012, 18:51 | #4 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
При дубликации хендла надо бы установить DUPLICATE_CLOSE_SOURCE.
|
05.04.2012, 12:59 | #5 |
Форумчанин
Регистрация: 16.04.2011
Сообщений: 126
|
У меня в этих функциях ошибка при компиляции: ссылка на неразрешенный символ.
Ошибка 13 error LNK2019: ссылка на неразрешенный внешний символ __imp__NtQueryInformationFile@20 в функции _GetFileNameThread@4 Ошибка 12 error LNK2019: ссылка на неразрешенный внешний символ __imp__NtQuerySystemInformation@16 в функции _GetInfoTable Код:
может ктонить подскажет что ж делать? |
05.04.2012, 13:05 | #6 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
А как Вы к ntdll.dll подключаетесь?
У вас должна быть прилинкована библиотека ntdll.lib, либо сами получаете адреса экспортируемых функций и вызываете по указателю. |
05.04.2012, 13:30 | #7 |
Форумчанин
Регистрация: 16.04.2011
Сообщений: 126
|
спасибо. я действительно неправильно подключал библиотеку.
программа, что в той статье, показывает не все открытые файлы! и при DUPLICATE_CLOSE_SOURCE у меня виснет все на свете. Последний раз редактировалось Stilet; 07.04.2012 в 11:54. |
06.04.2012, 18:46 | #8 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
При переборе хендлов, открываете его процесс и с помощью NtDuplicateObject или DuplicateHandle дублируете хендл с закрытием оригинала. И так со всеми хендлами, какие нужно и не нужно. Молодец. |
|
07.04.2012, 11:23 | #9 |
Форумчанин
Регистрация: 16.04.2011
Сообщений: 126
|
Еще один вопрос. У меня есть строка в которой значение определенного хендла и мне надо его завершить.
как эту строку присвоить объекту типу HANDLE или можно сразу как-то завершить? |
07.04.2012, 18:54 | #10 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
Я всегда считал, что строка это последовательность элементов char (wсhar_t) завершаемая нулем, ну или это класс инкапулирующий эту последовательность. Преобразовать значение, записанное в строке в число конечно можно, только непонятно как это соотносится с темой? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получить Handle или PID из процесса в котором dll... | rangel | Win Api | 2 | 09.02.2012 12:44 |
Получить все окна процесса, зная его PID. | Johnson | Общие вопросы Delphi | 2 | 11.01.2011 19:27 |
хэндл окна по PID процесса? | Johnson | Win Api | 1 | 16.12.2010 16:05 |
По пути к файлу определить pid процесса | Var17 | Win Api | 1 | 15.12.2009 11:33 |