VB-Homepage Tipp 343

Einen eigenen Eintrag unter den IE Favoriten anlegen

Einen Tipp, wie Sie in Ihrem Programm einen Verweiß auf Ihre Homepage hinterlegen und so dem User die Möglichkeit geben, sich immer über neue Version oder weitere Programme zu informieren, dies findet sich schon unter den Tipps der VB-Homepage.
Wenn Sie diese Funktionalität aber auch zur Verfügung stellen möchten,
auch wenn der User momentan gar nicht Ihr Programm nutzt, dann können Sie Ihm (zumindestens für den IE) einen Eintrag in seine Favoriten schreiben.

Das Ganze besteht aus zwei Grundfunktionen.

Die erste besteht darin, den Favoriten Ordner des aktuellen Users zu ermitteln. Diese Funktion wurde (wesentlich umfangreicher) schon als Tipp beschrieben.

Die zweite macht sich zu nutze, das diese Favoriten als Datei vorliegen und einer einfachen Syntax unterliegen

Beispiel :
Im aktuellen Favoriten Ordner des Users liegt eine Datei Namens
Online Seminar MS IIS Sicherheit.URL
... dann ist der Angezeigte Name unter Favoriten
"Online Seminar MS IIS Sicherheit"

Diese Art Dateien enthalten standardmäßig drei Zeilen

[InternetShortcut]
URL=http://www.microsoft.com/seminar/1033/IISSecurity/Seminar.htm
Modified=400668A0556EBE01D0

Da die letzte Zeile (Datum des letzten Zugriffs) getrost weggelassen werden kann, kann man also einfach eine Textdatei mit seinen Angaben anlegen.

Ein Demoprojekt, das den Eintrag beim Aufruf auslößt und sich anschließend gleich wieder selbst beendet könnte somit folgendermaßen aussehen.

Allgemein/Deklarationen
Private Type SHITEMID
  cb As Long
  abID As Byte
End Type

Private Type ITEMIDLIST
  mkid As SHITEMID
End Type

Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Const NOERROR = 0
Const CSIDL_FAVORITES = &H5
Const CSIDL_STARTUP = &H6

Private Sub From_Load()
Dim ItemList As ITEMIDLIST
Dim Pfad As String
Dim x As String

'Ermitteln userbezogenes Favoritenverzeichnis
If SHGetSpecialFolderLocation(Form1.hWnd, CSIDL_STARTUP, ItemList) =  NOERROR Then
    Pfad = Space$(255)
    If SHGetPathFromIDList(ItemList.mkid.cb, Pfad) <> 0 Then
          Pfad = Left$(Pfad, InStr(Pfad, vbNullChar) - 1)
    Else
          Pfad = ""
    End If
End If

'Konnte Pfad ermittelt werden, Linkdatei erzeugen
If Pfad <> "" Then
    Open Pfad & "\VB - Homepage.url" For Output As #1
    Print #1, "[InternetShortcut]"
    Print #1, "URL=http://come.to/vb"
    Close #1
End If

'Prüfung
x = Dir(Pfad & "\VB - Homepage.url")

'Auswertung
If Pfad = "" Or x = "" Then
     MsgBox "Linkdatei konnte nicht erzeugt werden !", vbCritical, "VB Tipp"
Else
     MsgBox "Linkdatei erfolgreich angelegt", vbInformation, "VB Tipp"
End If

Unload me
End
End Sub


Tipp-Download

Quelle :

Zurück zur Übersichtsseite