[VB6] Desktop shortcut aanmaken via API gaat fout

Pagina: 1
Acties:

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Ik probeer via een VB6 API functie fCreateShellLink op de desktop een shortcut naar een applicatie aan te maken. Helaas krijg ik een fout code terug en heb ik even geen idee wat ik fout doe. Ook is deze functie undocumented dus dat schiet ook niet op. Hopelijk dat iemand ziet wat ik fout doe?

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Declare Function fCreateShellLink Lib "vb6stkit.dll" _
    (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, _
     ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String, _
     ByVal fPrivate As Long, ByVal sParent As String) As Long

Public Sub CreateDesktopLink()
Dim DesktopFolder As String
Dim lReturn As Long
Dim Success As Boolean
    
DesktopFolder = GetSpecialFolder(0, CSIDL_DESKTOP)

'Add to Desktop
Success = fCreateShellLink("..\..\Desktop", "Calculator", "c:\windows\calc.exe", vbNullString, False, "$(Programs)")

If Not Success Then
    MsgBox "Fout"
End If
 
End Sub

Het stukje ..\..\Desktop vindt ik nogal vaag, maar dit voorbeeld komt ook van verschillende sites, zie bijv.
http://groups.google.nl/g...=5&hl=nl#1cb969c8d6729d18

Maar daar hebben ze het wel over Windows NT en ik heb vooralsnog alleen getest onder Windows XP die de desktop natuurlijk onder Document and Settings opslaat.

It’s nice to be important but it’s more important to be nice


  • user109731
  • Registratie: Maart 2004
  • Niet online

Verwijderd

Je gebruikt wel de functie GetSpecialfolder om de map voor het bureaublad op te halen, maar het resultaat daarvan gebruik je NIET in je functie !

[ Voor 85% gewijzigd door Verwijderd op 22-09-2005 10:59 ]


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Ja dat artikel had ik ook gevonden, echter:
Do this by calling the fCreateShellLink API function found in the Stkit432.dll file that ships with the Setup ToolKit in Microsoft Visual Basic version 4.0 for Windows or the Vb5stkit.dll file that ships with the Setup Toolkit in Visual Basic 5.0
Dit is nog een oude API voor VB5 de API voor VB6 hebben ze aangepast en die gebruik ik nu dus ook. Helaas kon ik geen MS artikel vinden voor de nieuwe VB6 API.
Nu vond ik ook nog een ander artikel:
http://www.codeguru.com/f...=19982&highlight=shortcut
Maar daar gebruiken ze een extra component dat wil ik liever niet.

It’s nice to be important but it’s more important to be nice


Verwijderd

Hier staat een artikeltje hoe je snelkoppelingen kunt maken met gedocumenteerde functies van o.a. de Scripting host

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Bedankt ik zal daar eens naar gaan kijken.

It’s nice to be important but it’s more important to be nice


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Verwijderd schreef op donderdag 22 september 2005 @ 10:54:
Je gebruikt wel de functie GetSpecialfolder om de map voor het bureaublad op te halen, maar het resultaat daarvan gebruik je NIET in je functie !
Ja die regel hoort daar eigenlijk niet te staan, maar ik had al geprobeerd het volledige path naar de desktop door te geven maar dat werkte dus ook niet.

It’s nice to be important but it’s more important to be nice


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 24-04 15:13

sopsop

[v] [;,,;] [v]


  • DemonTPx
  • Registratie: December 2002
  • Laatst online: 20-04 17:27
Volgens mij ligt het probleem in de taal van je windows.
Ik zie hier alleen maar ..\..\Desktop, maar waarschijnlijk moet dat dus ..\..\Bureaublad zijn.
En waarschijnlijk kun je aan de functie GetSpecialFolder zien welke je moet hebben.
Pagina: 1