vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
LNK-Verknüpfung mit Icon erstellen 
Autor: Sebastian Steiner
Datum: 04.08.04 20:54

Hallo.

Weiß jemand, wie man eine LNK-Verknüpfung mit bestimmtem Icon erstellt?
Nehmen wir an, eine Anwendung hat dieses VB-Fenstersymbol. Die Verknüpfung soll aber einen Drucker oder was weiß ich zeigen.
Dieses Symbol ist als ICO im selben Verzeichnis gespeichert. Gut - manuell geht das ja einfach über "Symbol ändern...", aber ich möchte das halt gerne mit einem VB Source machen.

Vielen Dank!
Sebastian

http://www.FreeBASIC-Portal.de/

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LNK-Verknüpfung mit Icon erstellen 
Autor: michi-bib
Datum: 05.08.04 09:39

Hallo Sebastian,

ich mach das eigentlich immer mit der folgenden Funktion:

Public Function CreateShortcut(ByVal sLinkFile As String, ByVal sTargetFile As _
  String, Optional ByVal sArguments As String, Optional ByVal sDescription As _
  String, Optional ByVal sWorkingDir As String)
    Dim oShell As New Shell32.Shell
    Dim oFolder As Shell32.Folder
    Dim oLink As Shell32.ShellLinkObject
    Dim sPath As String
    Dim sFile As String
    Dim F As Integer
 
    On Error Resume Next
 
'Ordner und Dateiname extrahieren
    sPath = Left$(sLinkFile, InStrRev(sLinkFile, "\") - 1)
    sFile = Mid$(sLinkFile, InStrRev(sLinkFile, "\") + 1)
 
   'Link-Datei mit 0 Bytes erstellen, da die Link-Datei bereits voranden sein 
   ' muss
    F = FreeFile
    Open sLinkFile For Output As #F
    Close #F
    Set oFolder = oShell.NameSpace(sPath)
    Set oLink = oFolder.Items.Item(sFile).GetLink
 
'Eigenschaften der Verknüpfung
    With oLink
        If sArguments <> "" Then .Arguments = sArguments
        If sDescription <> "" Then .Description = sDescription
        If sWorkingDir <> "" Then .WorkingDirectory = sWorkingDir
        .Path = sTargetFile
'Verknüpfung speichern
        .Save
    End With
 
'Objekte zerstören
    Set oLink = Nothing
    Set oFolder = Nothing
    Set oShell = Nothing
End Function
Aufruf dann z.B:

Call CreateShortcut(App.path + "\MyApp.lnk", App.path + "\MyApp.exe", , _
  "MyApp", App.path)
Du musst dazu unter Menu Projekt/Verweise noch deinem Projekt
die Microsoft Shell Controls and Automation hinzufügen.

Gru? Michi aus Hannover

1 + 1 = 3 f?r hinreichend gro?e 1

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LNK-Verknüpfung mit Icon erstellen 
Autor: Sebastian Steiner
Datum: 05.08.04 11:38

Hallo.

Danke schon mal.
Aber wo kann ich da ein anderes Icon zuweisen?
Nehmen wir an, die Verknüpfung sollte das Icon C:\LOL.ICO und nicht das Symbol von der EXE haben. Wie geht das?

Viele Grüße!
Sebastian

http://www.FreeBASIC-Portal.de/

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LNK-Verknüpfung mit Icon erstellen 
Autor: michi-bib
Datum: 06.08.04 18:48

Hi Sebastian,

ich habe eben erst wieder Internet zur Verfügung, deshalb jetzt erst Antwort.

Hab mich nochmal mit dem Thema beschäftigt und die Funktion um den
Parameter "sICOFile" erweitert.

Meine Forschungen haben bisher folgendes ergeben:

Standardmäßig wird wohl das (erste) Icon des Targetfiles verwendet.

Mit der Methode setIconLocation des ShellLinkObjects kann man aber
auch was anderes einstellen:

Wenn der Targetfile beispielsweise mehrere Icons enthält, könnte man
z.B. das dritte als Symbol des Links verwenden (Parameter "ilIcon" der
Methode setIconLocation = 3)

Wenn man eine separate ico-Datei verwenden möchte, scheint dort der
derselbe Parameter mit Wert = 0 zu funktionieren.

Zum Testen hab ich mir mal auf'm Desktop 'ne Verknüpfung
(Win2000 SP4, VB6 SP6) angelegt so:

Private Sub Command3_Click()
    Call CreateShortcut("C:\Dokumente und Einstellungen\All" & _
      "Users\Desktop\MyApp.lnk", App.Path + "\MyApp.exe", App.Path + _
      "\Icons\MyIcon.ico", , "MyApp")
End Sub
 
Public Function CreateShortcut(ByVal sLinkFile As String, ByVal sTargetFile As _
  String, Optional sICOFile As String, Optional ByVal sArguments As String, _
  Optional ByVal sDescription As String, Optional ByVal sWorkingDir As String)
    Dim oShell As New Shell32.Shell
    Dim oFolder As Shell32.Folder
    Dim oLink As Shell32.ShellLinkObject
    Dim sPath As String
    Dim sFile As String
    Dim F As Integer
 
    On Error Resume Next
 
'Ordner und Dateiname extrahieren
    sPath = Left$(sLinkFile, InStrRev(sLinkFile, "\") - 1)
    sFile = Mid$(sLinkFile, InStrRev(sLinkFile, "\") + 1)
 
'Link-Datei mit 0 Bytes erstellen, da die Link-Datei bereits voranden sein muss
    F = FreeFile
    Open sLinkFile For Output As #F
    Close #F
 
    Set oFolder = oShell.NameSpace(sPath)
    Set oLink = oFolder.Items.Item(sFile).GetLink
 
'Eigenschaften der Verknüpfung
    With oLink
        If sICOFile <> "" Then .SetIconLocation sICOFile, 0
        If sArguments <> "" Then .Arguments = sArguments
        If sDescription <> "" Then .Description = sDescription
        If sWorkingDir <> "" Then .WorkingDirectory = sWorkingDir
        .Path = sTargetFile
'Verknüpfung speichern
        .Save
    End With
 
'Objekte zerstören
    Set oLink = Nothing
    Set oFolder = Nothing
    Set oShell = Nothing
End Function
Zusatzinfo ---> Ich weiß zwar nicht ob, dies hier jetzt 'nen "Profitip" ist, vielleicht kennst
du's ja auch schon: Wenn du den Verweis auf die Shell Components and
Automation in deinem Projekt hast, click mal in der Entwicklungsumgebung
auf Menu Ansicht/Objektkatalog. In der ComboBox, in der steht "Alle Bibliotheken",
wählst du "shell32" aus. Dann wird dir angezeigt, was da alles für Objekte drinnen
sind. Dort wählst du dann das ShellLinkObjekt aus und bekommst dort alle
Eigenschaften, Methoden und ggf. Ereignisse dieses Objekts angezeigt u.a.
auch die setIconLocation-Methode.

Ich geh jedenfalls immer so vor, wenn ich ein "unbekanntes Objekt" vor mir habe.

Dasselbe gilt übrigends für alle Komponenten und Verweise, die du deinem
Projekt hinzugefügt hast, und auch z.B. für Klassen, die du in deinem Projekt selbst
geschrieben hast.

So und nu' nach dem ellenlangen Geschwafel genehmige ich mir jetzt erstmal
'nen gepfegtes Bier.

I hope that helps.

Prost.

Gru? Michi aus Hannover

1 + 1 = 3 f?r hinreichend gro?e 1

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LNK-Verknüpfung mit Icon erstellen 
Autor: Leberkas
Datum: 11.08.17 21:42

Hallo,

versuche gerade ein Icon aus My.Resources zu verwenden.
Bisher leider ohne Erfolg.
Ist es überhaupt möglich, ein ico aus My.Resources zu verwenden ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: LNK-Verknüpfung mit Icon erstellen 
Autor: Franki
Datum: 12.08.17 03:21

Hallo,
stelle deine Frage doch mal in der vb.net Rubrik, unter VB6 ist das so nicht möglich.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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