kostenloser Webspace werbefrei: lima-city


VB.net - Ordneröffnen abfangen

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Hi
    Ich möchhte mit meiner Anwendung, die dauerhaft im Hintergrund läuft und auch als Administrator ausgeführt wurde, das öffnen von gewissen Ordnern abfangen und unterbinden.
    Also wenn ich in meinem Explorer auf den Ordner 'test' unter 'C:\ordner1\ordner2\' klicke, um ihn zu öffnen, soll meine Anwendung
    1) den Vorgang überhaupt erstmal registrieren
    [eventuell durch zugriffsüberwachung bestimmter Verzeichnisse]
    2) Den Vorgang abbrechen, so dass der Ordner nicht geöffnet werden kann.

    Ausserdem müsstemann nicht nur den Zugriff per Explorer, sondern auch durch andere Anwendungen abfangen und unterbinden (ausser natürlich die eigene Anwendung)

    Ist das möglich? Ich hoffe ;)
    MFG & vielen Dank schonmal
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Das wird dir in einem User-Mode-Prozess (EXE) nicht gelingen!

    Es gibt im .NET zwar eine FileSystemWatcher Klasse, diese informiert aber nur über Erstellen, Ändern, Löschen und Umbenennen von Dateien. Nicht jedoch über Dateizugriffe.

    Um solche Event's zu bekommen und dann auch noch entsprechend umzuleiten (dein Punkt 2), musst du schon einen Kernel-Mode-Treiber schreiben und dich direkt an den Windows NTFS-Treiber hängen. Das machen u.a. die Virenprogramme.

    Eine andere "bequeme" Möglichkeit sehe ich leider nicht.

    Den FileSystemWatcher findest du hier:
    http://msdn.microsoft.com/de-de/library/system.io.filesystemwatcher(VS.80).aspx

    Gruß
  4. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Okay.
    Allerdings habe ich keine Ahnung wie ich so einen Treiber schreibe, hätte allerdings durchaus Lust dazu ;)
    Habe sowas nähmlich noch nie gemacht und was neues lernen hat ja so seine Vorteile.
    Ich gehe mal davon aus, dass sowas in vb.net nicht möglich ist und besser in C++ gemacht wir, oder?
    Gibt es dazu Tutorials, vorallem speziell zu meinem Fall und wie kann ich das dann wiederum in VB.net als event nutzen?
    Vielen Dank & MFG
  5. Zum schreiben eines Treibers benötigst du das WDK (früher auch Win DDK genannt):

    http://www.microsoft.com/whdc/devtools/WDK/default.mspx
    http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff

    Es sind zwar auch Beispiele enthalten, dennoch ist das Schreiben von Treibern nicht die einfachste Art von Programmierung und verlangt tiefe Kenntnisse von Aufbau und Funktionsweise des Windows Kernels. Traditionell werden Treiber in C geschreiben (C++ ohne Obejektorientierung), mittlerweile kann man aber imho auch C++ verwenden. Dennoch ist es nicht vergleichbar mit VB oder PHP.
    Nur ein Beispiel, wenn im Usermode ein Programmfehler auftritt, bringt nicht zulletzt Windows eine Fehlermeldung (GPF - Schutzverletzung). Auf Treiberebene siehst du nur den berüchtigten BlueScreen...
    Viel Spaß beim booten ;-)

    Gruß
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!