ErdemGurgenci Ответов: 2

Как файл get process был открыт раньше?


Привет

просто я нахожу ваш проект включенным codeProject.com
Список Использованных Файлов[^]

это очень близко к тому, что я хочу сделать. я надеюсь, что вы можете помочь мне в моей проблеме

Так долго я исследовал, как susspend process befere file open, но я не получил для этого никакого хорошего источника.

так что я хочу этого...

у меня есть некоторый список файлов на диске , и если какой-либо файл открывается в указанном файле , то приложение приостановит процесс и даст некоторую информацию, например PID, имя файла, доступ к приложению и т. д.

Базовая схема

Какой-То Список Файлов
A.doc
B.xls
c.txt

Структура C/C++

Найдите процесс и приостановите его перед запуском и найдите файл поиска процесса
если поисковый файл равен какому-то списку файлов, то убейте процесс и сделайте обратную связь

спасибо за помощь

Что я уже пробовал:

Я не получил никакого солитона для этой задачи

2 Ответов

Рейтинг:
2

Dave Kreskowiak

Во-первых, ты уже второй раз спрашиваешь об этом. Просто продолжайте разговор в исходном русле.

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

То, что вы ищете, - это подключение API, в частности функция CreateFile. Это не тривиальная задача.

Кроме того, просто убивать процессы-плохая идея. Это может легко привести к нестабильности системы.


CPallini

5.

ErdemGurgenci

извините, просто я не задавал никаких вопросов по codeproject.
вы правы, если я буду обрабатывать систему будет пчелиная нестабильность. но я сделаю это только для какого-нибудь файла, например excell, вот почему я думаю, что нет проблем, если я убью excel.exe
спасибо за ответ, как я могу получить какой-либо простой или документ для этой любой идеи ?

хорошего вам дня

Dave Kreskowiak

5 дней назад --> https://www.codeproject.com/Questions/1260691/How-do-I-suppend-process-before-file-open

Нет простого способа сделать это. Подключение API по своей сути сложно, особенно в управляемом коде, таком как C#.

Убийство Excel, вероятно, является одним из наиболее проблемных приложений для убийства.

Зачем вам вообще убивать процесс, который пытается открыть файл? Оставьте этот процесс в покое и просто верните ошибку. Пусть приложение живет и обрабатывает ошибку, например ошибку отказа в доступе.

Annyway, вы можете попробовать EasyHook[^], но не ждите от него никакой поддержки.

ErdemGurgenci

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

Dave Kreskowiak

Тогда вы не убиваете процесс. Вы просто возвращаете ему недопустимый дескриптор файла, который сообщает приложению, что оно не может открыть файл.

ErdemGurgenci

спасибо за повтор. можете ли вы дать мне источник для этого решения ? Итак, для возврата недопустимого дескриптора файла ?

Dave Kreskowiak

Нет. Я никогда этого не делал.

Рейтинг:
1

OriginalGriff

Не публикуйте это в разделе быстрые ответы - если вы получили код из статьи, то в нижней части этой статьи есть кнопка "Добавить комментарий или Вопрос", которая вызывает отправку электронного письма автору. Затем они предупреждаются, что вы хотите поговорить с ними.
Публикуя это здесь, вы полагаетесь на то, что они "заглядывают" и понимают, что это для них.


CPallini

5.