2012-05-10 12 views

Antwort

6

Was Ihr fragen können zu tun getan werden. Viren-Scanner zum Beispiel machen es die ganze Zeit. Sie können die Dateiaktivität einfach mit Process Monitor überwachen. Sie können es auch programmgesteuert in C# mit der FileSystemWatcher Class tun. Aber es kann nicht in C# getan werden, ein Programm daran zu hindern, das Programm zu öffnen oder zu versuchen, den Zugriff auf die Datei zu verhindern. Sie müssen entweder C oder C++ verwenden. Sie müssen eine File System Filter Driver erstellen. Es ist eine komplexe Sache zu bauen, aber es ist genau das, was Sie brauchen. Um MSDN zu zitieren:

A file system filter driver intercepts requests targeted at a file system or another file system filter driver. By intercepting the request before it reaches its intended target, the filter driver can extend or replace functionality provided by the original target of the request. Examples of file system filter drivers include anti-virus filters, backup agents, and encryption products.

3

Sie können die Windows-API anschließen, wenn Sie möchten. Sehen Sie sich diese Art und Weise heraus zu tun, dass in .NET/C#:

EasyHook Windows API

2

Sysinternals bietet ein kostenloses Tool Process Monitor genannt, eine Funktion, von denen beliebige Windows-Prozesse zu befestigen ist (einschließlich .NET-Anwendungen) und Capture Systemaufrufe, einschließlich Datei öffnen, schließen, lesen usw.

Sie können es unter der Process Monitor Download Page herunterladen.

EDIT

Wie ich Ihre Frage erneut lesen, ich sehe, dass Sie über das Abfangen und möglicherweise Aufhebung solcher Operationen sind gefragt. Ich glaube, dass die FileSystemWatcher Klasse Ihre beste Wette sein wird, obwohl ich nicht denke, dass sie Dateioperationen einseitig abbrechen kann - Sie müssten eine Art kooperativen Mechanismus aufbauen, um dem Anrufer zu signalisieren, dass er den Vorgang abbricht.

1

Ich bin mir ziemlich sicher, dass Sie bei dieser Art von Operation in den Kernel einsteigen müssen und ich bin mir ziemlich sicher, dass Sie in C programmieren müssen. Schauen Sie sich File System Drivers an.

UPDATE: diese SO link kann helfen.

UPDATE: hinzugefügt, um eine Google-Suche nach Windows File System Drivers

AUCH What is a good resource to get started with Windows file system driver development?

+0

Link funktioniert nicht mehr. –

+0

@JamesWilkins es muss vorübergehend gewesen sein. Beide Links haben nur für mich funktioniert. Beste – kenny

Verwandte Themen