SetFilePointer () на другом дескрипторе файла процесса терпит неудачу - PullRequest
0 голосов
/ 07 января 2012

Я делаю графический интерфейс для стороннего неуправляемого консольного исполняемого файла.Этот исполняемый файл читает входной файл, обрабатывает данные и генерирует выходной файл.Поскольку процесс может занять много времени, мне нужно следить за ходом процесса.

Я хочу найти идентификатор исполняемого процесса консоли (выполнено), а идентификатор процесса получить список файлов, открытых программой.процесс (готово), а затем, как только входной файл идентифицирован и его дескриптор получен (готово), я хочу вызвать SetFilePointer (handle, 0, currentPosition), чтобы он сообщал мне, какое количество файла уже прочитано.Затем (read / totalSize) даст мне ход процесса.

ПРОБЛЕМА заключается в том, что вызов SetFilePointer () всегда возвращает 0xFFFFFFFF (fail), а GetLastError () возвращает 6 (недействительный дескриптор).Есть идеи?

Заранее спасибо.

1 Ответ

5 голосов
/ 07 января 2012

Ручки принадлежат процессу владения и могут управляться только процессом владения.Если вы хотите изменить дескриптор в другом процессе, вам нужно внедрить код в этот процесс или использовать DuplicateHandle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...