Hi,
ts-soft hat geschrieben:Reicht denn keine Verknüpfung im Autostart-Ordner, dabei kannste weniger
"zerballern" und ist Anwenderfreundlicher.
Deine Registry-Einträge funktionieren nur mit Administrator-Rechten, diese
haben aber immer weniger Anwender, zumindest seit Vista und das ist auch
gut so
Danke für die prima Tips und den 2 Links!

Hat mir sehr gut weitergeholfen! Sehe ich genauso wie Du wegen der Registry, allerdings habe ich nicht diese 2 Links gefunden, obwohl ich gestern noch eine ganze Weile gesucht hatte.
Hier noch das Beispiel, vielleicht kann es ja jemand gebrauchen oder jemand verbessern!
Grüsse Matthias
Code: Alles auswählen
#CSIDL_STARTUP=$07
Procedure.s SpecialFolder(folderno)
listptr=0
result$=Space(270)
SHGetSpecialFolderLocation_(0,folderno,@listptr)
SHGetPathFromIDList_(listptr,@result$)
ProcedureReturn Trim(result$)
EndProcedure
;** CreateShortcut
;** .Path: for the Link ("c:\PureBasic\purebasic.exe")
;** .Link: "C:\Documents and Settings\User\Desktop\PureBasic.lnk"
;** .WorkingDir: "c:\PureBasic"
;** .Argument: "%1"
;** .ShowCommand: #SW_SHOWNORMAL or #SW_SHOWMAXIMIZED or #SW_SHOWMINIMIZED
;** .Description: "Start PureBasic"
;** .HotKey: no need to use this :)
;** .IconFile: "c:\PureBasic\purebasic.exe"
;** .IconIndex: 1
ProgrammPath$ = GetCurrentDirectory()
ProgrammPath$ + "MeinProgramm.exe"
ProgrammLink$ + SpecialFolder(#CSIDL_STARTUP) + "\MeinProgramm.lnk"
ProgrammWorking$ + GetCurrentDirectory()
ProgrammArgument$ + ""
ProgrammDescription$ + "Mein Programm starten"
ProgrammIndex = 1
Procedure CreateShortcut(Path.s, Link.s, WorkingDir.s = "", Argument.s = "", ShowCommand.l = #SW_SHOWNORMAL, Description.s = "", HotKey.l = #Null, IconFile.s = "|", IconIndex.l = 0)
Protected psl.IShellLinkA, ppf.IPersistFile, mem.s, hres.l, Result.l
If IconFile = "|" : IconFile = Path : EndIf
If Not WorkingDir : WorkingDir = GetPathPart(Path) : EndIf
CoInitialize_(0)
If CoCreateInstance_(?CLSID_ShellLink,0,1,?IID_IShellLink,@psl) = 0
Set_ShellLink_preferences:
psl\SetPath(@Path)
psl\SetArguments(@Argument)
psl\SetWorkingDirectory(@WorkingDir)
psl\SetDescription(@Description)
psl\SetShowCmd(ShowCommand)
psl\SetHotkey(HotKey)
psl\SetIconLocation(@IconFile, IconIndex)
ShellLink_SAVE:
If psl\QueryInterface(?IID_IPersistFile,@ppf) = 0
mem.s = Space(1000)
MultiByteToWideChar_(#CP_ACP, 0, Link, -1, mem, 1000)
hres = ppf\Save(@mem,#True)
Result = 1
ppf\Release()
EndIf
psl\Release()
EndIf
CoUninitialize_()
ProcedureReturn Result
DataSection
CLSID_ShellLink:
Data.l $00021401
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
IID_IShellLink:
Data.l $000214EE
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
IID_IPersistFile:
Data.l $0000010B
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
EndProcedure
CreateShortcut(ProgrammPath$,ProgrammLink$,ProgrammWorking$,ProgrammArgument$,#SW_SHOWNORMAL,ProgrammDescription$,0,"|",1)