Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
>> Dateisystem 409 160 Verknüpfungen anlegen Dateisystem Wie Sie ja wahrscheinlich schon wissen, erlaubt Windows das Anlegen von Verknüpfungen (Links) zu Dateien und Ordnern. Verknüpfungen verwalten intern einen Pfad zur Datei bzw. zum Ordner, eventuelle Aufrufargumente (bei Programmdateien) und ein Arbeitsverzeichnis. Über Verknüpfungen, die in einem beliebigen Ordner gespeichert sein können, können Sie Dateien und Ordner öffnen, als würden Sie diese direkt öffnen. Im Explorer erzeugen Sie eine Verknüpfung zum einen über das Ziehen einer Datei oder eines Ordners mit anschließendem Fallenlassen unter der Betätigung der STRG- und der SHIFT- Taste. Zum anderen können Sie eine Verknüpfung auch über das Explorer-Menü anlegen. Verknüpfungen können Sie aber (natürlich) auch in einem Programm erzeugen. Sinnvoll ist das zum Beispiel, wenn eine Anwendung in bestimmten Situationen automatisch E-Mails ver- sendet, die sich beispielsweise auf Dateien im Netzwerk oder auf bestimmte Datensätze in einer Datenbank beziehen. Über eine Verknüpfung zu den Dateien bzw. zu einem Programm, das die Datensätze anzeigen kann, können Sie dem Anwender die Möglichkeit geben, die assoziierten Informationen auf eine einfache Weise zu öffnen. Leider bietet das .NET Framework scheinbar auch in der Version 3.5 keine Möglichkeit, Ver- knüpfungen anzulegen. Dazu müssen Sie wieder einmal das Windows-API bemühen. Etwas problematisch daran ist, dass die Features zur Erzeugung von Verknüpfungen nicht in einer klassischen DLL, sondern in COM-Schnittstellen implementiert sind (die allerdings in diesem Fall funktionsfähige Klassen sind). Die Hauptschnittstellen werden mit IShellLinkA (ASCII) und IShellLinkW (Unicode) bezeichnet. Daneben existiert (unter anderem) noch eine Schnitt- stelle IPersistFile zum Lesen und Schreiben von (Verknüpfungs-)Dateien. Im Internet kursiert dazu eine COM-Typbibliothek ShellLink.tlb , in der diese Schnittstellen deklariert sind. (COM-)Anwendungen können diese Typbibliothek referenzieren, um Verknüp- fungen anzulegen. In einem .NET-Programm können Sie diese Typbibliothek ebenfalls zur Erzeugung von Verknüpfungen verwenden. Eine reine .NET-Lösung ist aber immer die bessere. Und die ist möglich, denn Sie können mit speziellen Attributen auch COM-Schnittstellen in ein .NET-Programm importieren. Das Ganze ist leider etwas kompliziert und erfordert eine Menge an COM-Grundlagenwissen. Erfreulicherweise hat uns diese komplexe Arbeit Mattias Sjögren in Form der Dateien Shell- LinkNative.cs (native Shell-Link-Klassen) und ShellShortcut.cs (.NET-Wrapper für die nativen Klassen) abgenommen. Mit Hilfe der Klasse ShellShortcut ist es sehr einfach, eine Verknüp- fung anzulegen. An der Adresse www.msjogren.net/dotnet/eng/samples/dotnet_shelllink.asp fin- den Sie ein Beispiel, das diese Klassen einsetzt. Die Klassen finden Sie auch im Komponenten- Ordner auf der CD. Ich stelle die (relativ umfangreichen) Shell-Link-Klassen hier nicht vor, sondern zeige ledig- lich, wie Sie mit deren Hilfe eine Verknüpfung anlegen. Dazu erzeugen Sie zunächst eine Ins- tanz der Klasse ShellShortcut , der Sie im Konstruktor den vollen Dateinamen der zu erzeugenden Verknüpfung übergeben. Die Dateiendung solcher Dateien ist üblicherweise .lnk . Danach stellen Sie zumindest die Eigenschaften Path (Pfad zur verknüpften Datei bzw. zum verknüpften Ordner) ein. Handelt es sich bei dieser Datei um ein Programm, können Sie in der