Freitag, 21. Dezember 2007

Erstellen einer Desktopverknüpfung unter VFP / Creating a desktop shortcut with VFP

Immer wieder besteht der Bedarf, bei einer Installation eine Desktopverknüpfung zu einer oder mehreren Dateien oder Applikationen zu erzeugen.

Professionelle Installer führen dies natürlich vollautomatisch für uns durch, aber hin und wieder müssen auch wir Entwickler solch eine Verknüpfung erzeugen.

Den einfachsten Weg stellt wie so oft der Windows Scripting Host bereit. Über 'CreateShortcut' können wir ein Verknüpfungsobjekt erzeugen, das diverse Eigenschaften bereitstellt, um eine Verknüpfung mit allen notwendigen Features zu erzeugen. Damit dies auch sauber funktioniert sind einige Schritte vorab durchzuführen.
  1. Auswählen der Datei oder Applikation zu der eine Verknüpfung erzeugt werden soll
  2. Einen sprechenden Namen für die Verknüpfung definieren. Hierdurch erscheint bspw. nicht 'notepade.exe' sondern 'Texteditor' als Verknüpfungsname auf dem Desktop.
  3. Der nun definierte Dateiname muss mit der Endung '.lnk' versehen werden.
Im Anschluß erzeugen wir ein ShortCut-Objekt und füllen es mit den gewünschten Eigenschaften.

* Beliebige Datei auf dem Deskop verknüpfen

* Arbeitsvariablen definieren
LOCAL cFileName as String, cLinkName as String, oShell as Object, ;
      cDesktop as String, oLink as Object

* Datei auswählen
cFileName        = GETFILE()
* ggf. alternative Bezeichnung für die Verknüpfung definieren
cLinkName        = INPUTBOX([Name: ],[Name der Verknüpfung],JUSTSTEM(cFileName))
* Dateinamenserweiterung 'lnk' erzwingen
cLinkName        = FORCEEXT(JUSTSTEM(cLinkName),[.lnk])
* Scriptinghost Object erzeugen
oShell           = CREATEOBJECT([WScript.Shell])
* Pfad für das lokale Desktop-Verzeichnis abfragen
cDesktop         = oShell.SpecialFolders([Desktop])
* Shortcutobject erzeugen
oLink            = oShell.CreateShortcut(ADDBS(cDesktop) + cLinkName)

WITH oLink
    * Darstellung - 3=Maximized  1=Normal  7=Minimized
    .WindowStyle        = 3
    * Zielverzeichnis
    .TargetPath         = cFileName
    * Ausführen in
    .WorkingDirectory   = ADDBS(JUSTPATH(cFileName))
    * Tastaturshortcut
    .Hotkey             = [Ctrl+Alt+m]
    * Tooltipp
    .Description        = [Demonstration eine Verknüpfung]
    *Objektverknüpfung erzeugen
    .Save()
ENDWITH

* Arbeitsvariablen freigeben
RELEASE cFileName, cLinkName, oShell, cDesktop, oLink

Keine Kommentare:

Kommentar veröffentlichen