vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: COM/OLE/Registry/DLL · Verknüpfungen   |   VB-Versionen: VB4, VB5, VB606.06.03
Beliebige Verknüpfung auslesen

Dieser Code zeigt, wie sich eine beliebige Verknüpfung (LNK-Datei) auslesen lässt.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  35.733 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, Win8, Win10, Win11 Beispielprojekt auf CD 

Vor einiger Zeit haben wir Ihnen gezeigt, wie sich eine beliebige Verknüpfung mit Hilfe der SHELLLNK.TLB-Funktionen erstellen lässt:
 Beliebige Verknüpfungen erstellen

Und ebenfalls unter Verwendung der SHELLLNK.TLB-Funktionen lässt sich eine vorhandene Verknüpfung natürlich auch wieder auslesen

Fügen Sie hierzu nachfolgenden Code in ein Modul.

Option Explicit
 
' WindowState-Konstanten
Public Enum eShowCmd
  ShowNormal = 1
  ShowMaximized = 3
  ShowMinimized = 7
End Enum
 
' Info-Struktur
Public Type udtShellLink
  WorkingDir As String
  Path As String
  Arguments As String
  Description As String
  ShowCmd As eShowCmd
End Type
Public Function ReadShellLink(ByVal sLinkFile As String) _
  As udtShellLink
 
  ' Verknüpfung auslesen
 
  Dim cShellLink As ShellLinkA
  Dim cPersistFile As IPersistFile
  Dim sTemp As String
  Dim uData As WIN32_FIND_DATA
 
  ' Neue Objekt-Instanz erstellen
  Set cShellLink = New ShellLinkA
  Set cPersistFile = cShellLink
 
  ' Verknüpfungsdaten "laden"
  cPersistFile.Load StrConv(sLinkFile, vbUnicode), 0
 
  With ReadShellLink    
    ' Dateiname (inkl. Pfad)
    sTemp = Space$(256)
    cShellLink.GetPath sTemp, Len(sTemp), uData, 0
    .Path = Left$(sTemp, InStr(sTemp, Chr$(0)) - 1)
 
    ' Arbeitsverzeichnis
    sTemp = Space$(256)
    cShellLink.GetWorkingDirectory sTemp, Len(sTemp)
    .WorkingDir = Left$(sTemp, InStr(sTemp, Chr$(0)) - 1)
 
    ' Parameter (Arguments)
    sTemp = Space$(256)
    cShellLink.GetArguments sTemp, Len(sTemp)
    .Arguments = Left$(sTemp, InStr(sTemp, Chr$(0)) - 1)
 
    ' Beschreibung (Kommentar)
    sTemp = Space$(256)
    cShellLink.GetDescription sTemp, Len(sTemp)
    .Description = Left$(sTemp, InStr(sTemp, Chr$(0)) - 1)
 
    ' Ausführen (Normal, Maximiert, Minimiert)
    sTemp = Space$(256)
    cShellLink.GetShowCmd .ShowCmd
  End With
End Function

WICHTIG: Der Code funktioniert natürlich nur dann, wenn Sie auch einen Verweis auf die Datei SHELLLNK.TLB gesetzt haben.

Beispiel:

Dim uLink As udtShellLink
 
uLink = ReadShellLink("c:\test.lnk")
With uLink
  List1.AddItem "File/Path: " & .Path
  List1.AddItem "WorkingDir: " & .WorkingDir
  List1.AddItem "Arguments: " & .Arguments
  List1.AddItem "Description: " & .Description
  List1.AddItem "ShowCmd: " & _
    Choose(.ShowCmd, "Normal", "", "Maximiert", "", "", "", "Minimiert")
End With

Dieser Tipp wurde bereits 35.733 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (5 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel