PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verknüpfungen erstellen.


Exxtreme
2002-09-30, 12:52:56
Hi Mädelz,

'ne kurze Frage: wie erstelle ich am blödesten Verknüpfungen in Form von *.lnk-Dateien? Und das in C/C++. Im MSDN habe ich leider nix gefunden.

Danke im Voraus.

Gruß
Alex

Demirug
2002-09-30, 13:17:22
Ich glaube du meinst das:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_programming/shortcuts/shortcut.asp

Exxtreme
2002-09-30, 13:30:33
Originally posted by Demirug
Ich glaube du meinst das:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_programming/shortcuts/shortcut.asp
Genau das. Thx.
AAARGHH! Ich rieche COM. Und ich hasse COM!!! :madman:

P.S. Die COM-Diskussion bitte hier weiter:
http://www.forum-3dcenter.net/vbulletin/showthread.php?s=&threadid=34509

Gruß
Alex

MeLLe
2002-09-30, 13:35:08
Wenn Du COM net magst, bekommst Du VB-Code :D
Sollte ja auch über C++ nutzbar sein, die Funktion aus der VB-Runtime. Oder?


Private Declare Function fCreateShellLink Lib "VB5STKIT.DLL"
(ByVal lpstrFolderName As String, ByVal lpstrLinkName As String,
ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String)
As Long

Private Sub Form_Load()
'Create a shell link on your desktop
lngresult = fCreateShellLink("..\..\Desktop", "LINK", "C:\myfile.exe", "")
End Sub

zeckensack
2002-09-30, 18:54:15
Das was MeLLe da geschrieben hat, müßte als C-Deklaration so aussehen (Obacht, ich habe eigentlich keine Peilung von VB):
long fCreateShellLink(char* const FolderName, char* const LinkName, char* const LinkPath, char* const LinkArgs);
Zu importieren aus der VB5STKIT.DLL via LoadLibrary und GetProcaddress (sofern es keine passende Lib gibt, die das ganze auch unter C/C++ verfügbar macht).

Dann so weitermachen:
int Form_Load()
{
//Create a shell link on your desktop
return(fCreateShellLink("..\..\Desktop", "LINK", "C:\myfile.exe", ""))
}

Kann auch sein, daß die Funktion eigentlich nur CreateShellLink heißt (man beachte das fehlende f), mußt du schauen ;)

MeLLe
2002-09-30, 23:02:00
Das "f" sollte schon vor dem Funktionsnamen bleiben, das ist ausnahmsweise keine VB-Eigenart.
Ob die "Parameterisierung" der Funktion von Dir so funktioniert, weiss ich nicht genau. Nach meinem begrenzten C/C++-Verständnis sollte ein ByVal-String-Parameter in VB einem "const char[x]" entsprechen. Ok - zur Laufzeit ist x unbekannt, daher könnte ein Pointer auch ganz nützlich sein ... Am besten einfach ausprobieren ;)