VB 5/6-Tipp 0074: Beliebige Verknüpfung erstellen
von ActiveVB
Beschreibung
Mit dieser Funktion kann an beliebiger Stelle eine Verknüpfung zu einer beliebigen Datei vorgenommen werden. Eine Lösung ohne den Verweises auf die Shelllink gibt es in Tipp Tipp 503.
Dieser Tipp funktioniert entweder nur in kompilierter Form oder benötigt eine DLL/OCX-Datei. Diese Binärdateien sind dem Tipp hinzugefügt worden, um seinen Funktionsumfang darstellen zu können. Vor dem Upload wurden sie auf Viren geprüft.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- ' Es muss ein Verweis auf 'VB 5 - IShellLinkA Interface(ANSI)' gesetzt werden. ' Die Komponente 'Microsoft Common Dialog Control 6.0 (SP3) (COMDLG32.OCX)' wird benötigt. '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Standarddialog-Steuerelement "CommonDialog1" ' Steuerelement: Schaltfläche "Command3" ' Steuerelement: Schaltfläche "Command2" ' Steuerelement: Textfeld "Text2" ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Beschriftungsfeld "Label3" ' Steuerelement: Beschriftungsfeld "Label1" ' Steuerelement: Beschriftungsfeld "Label2" 'Achtung die Funktion CreateLink benötigt 'SHELLLNK.TLB' 'Sollte sich diese nicht im Verzeichnis des Projekts 'befinden, kann sie auf der VB CD gefunden werden. Option Explicit Private Sub Form_Load() Label1.Caption = App.Path & IIf(Right(App.Path, 1) = "\", "", "\") & _ "Project1.exe" Text2.Text = App.Path & IIf(Right(App.Path, 1) = "\", "", "\") & _ "Test.lnk" End Sub Private Sub Command1_Click() If Len(Label1.Caption) > 0 And Len(Text2.Text) > 0 Then CreateLink Label1.Caption, Text2.Text End If End Sub Private Sub Command2_Click() CommonDialog1.Filter = "Alle (*.*)|*.*" CommonDialog1.InitDir = App.Path CommonDialog1.ShowOpen Label1.Caption = CommonDialog1.FileName End Sub Private Sub Command3_Click() Dim AA As String, BB As String Dim X As Long CommonDialog1.Filter = ("Alle (*.*)|*.*") CommonDialog1.InitDir = App.Path CommonDialog1.ShowOpen AA = CommonDialog1.FileName For X = Len(AA) To 1 Step -1 BB = Mid$(AA, X, 1) If BB = "\" Then Exit For Next X Text2.Text = Left$(AA, X) & "Test.lnk" End Sub Private Function CreateLink(Datei$, LinkName$) Dim cShellLink As ShellLinkA Dim cPersistFile As IPersistFile Set cShellLink = New ShellLinkA Set cPersistFile = cShellLink cShellLink.SetPath Datei cPersistFile.Save StrConv(LinkName, vbUnicode), 0 Set cPersistFile = Nothing Set cShellLink = Nothing End Function '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 7 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Dietrich Hinkelmann am 16.02.2008 um 11:51
Hallo,
das Einsetzen des Links erfolgt problemlos.
Der Pfad für die Programmumgebung wird aber nicht festgelegt. Meine Programme finden dann natürlich die dazugehörigen Dateien nicht.
Wie kann ich das Textfeld "Ausführen in" in "Eigenschaften" des Links mit der Pfadangabe füllen?
MfG
Dietrich Hinkelmann
Kommentar von Johannes M. Pfeiffer am 25.06.2002 um 21:21
Hallo,
unter Tipp 503 seht Ihr eine Möglichkeit eine Verknüpfung ohne die TLB Datei zu erstellen.
Gruß,
Johannes M. Pfeiffer
Kommentar von wulle am 17.03.2002 um 16:02
Hi Gerome,
Du musst im VB-Menu Projekt-Verweise einen neuen Verweis zur Datei
ShellLnk.tlb
anlegen.
Die Datei findest du auf der VB-CD unter \Tools\Unsupprt\Shelllnk\.
Das wars.
Kommentar von Gerome am 15.02.2002 um 13:42
Wie registriet man eigentlich eine TLB-Datei, damit man sie in VB nutzen kann?
Kommentar von Stephan muller am 25.08.2001 um 20:24
hmmm bei mir funktioniert das leider nicht.
Kommentar von Konrad Danner am 05.01.2001 um 15:56
Um eine Programmgruppe und eine Programmverknüpfung zu erstellen, kann man folgende Zeilen verwenden:
Private Sub Command1_Click()
Dim Linkitem$, Titel$, Datei$
Form1.Text1.LinkTopic = "ProgMan|Progman"
Form1.Text1.LinkMode = 2 'manuell
Titel$ = "Test-Programmgruppe" 'Titel der Programmgruppe
Linkitem$ = "[CreateGroup(" + Titel$ + ")]"
Form1.Text1.LinkExecute Linkitem$ 'Programmgruppe anlegen
Datei$ = """c:\windows\All Users\Anwendungsdaten\Symantec\pcAnywhere\direkt.bhf"""
Titel$ = "Fernwartung" 'Titel der Verknüpfung
Linkitem$ = "[AddItem(" + Datei$ + ", " + Titel$ + ")]"
Form1.Text1.LinkExecute Linkitem$
Kommentar von hazor am 22.10.2000 um 22:49
hi leutz,
weiß auch jemand wie es ohne die tlb-datei geht, mit default api's oder manuell???
thx
ci@o