Für den fall das du es nicht Händig kopieren möchtest.
Zum ermitteln des AutostartFolders kannst du das hier benutzen:
Code: Alles auswählen
Procedure.s Spec_Folder(clsi_const.l)
Path.s = Space(2048)
SHGetSpecialFolderLocation_(0,clsi_const,@pidl.l)
SHGetPathFromIDList_(pidl,@Path)
CoTaskMemFree_(pidl)
ProcedureReturn Path+"\"
EndProcedure
Debug Spec_Folder(7)
Und um eine Verknüpfung zu erstellen das hier:
Code: Alles auswählen
Procedure.l CreateShellLink(Path$, Link$, Argument$, DESCRIPTION$, WorkingDirectory$, ShowCommand.l, HotKey.l, IconFile$, IconIndexInFile.l)
CoInitialize_(0)
If CoCreateInstance_(?CLSID_ShellLink,0,1,?IID_IShellLink,@psl.IShellLinkA) = 0
Set_ShellLink_preferences:
; The file TO which is linked ( = target for the Link )
;
psl\SetPath(@Path$)
; Arguments for the Target
;
psl\SetArguments(@Argument$)
; Working Directory
;
psl\SetWorkingDirectory(@WorkingDirectory$)
; Description ( also used as Tooltip for the Link )
;
psl\SetDescription(@DESCRIPTION$)
; Show command:
; SW_SHOWNORMAL = Default
; SW_SHOWMAXIMIZED = aehmm... Maximized
; SW_SHOWMINIMIZED = play Unreal Tournament
psl\SetShowCmd(ShowCommand)
; Hotkey:
; The virtual key code is in the low-order byte,
; and the modifier flags are in the high-order byte.
; The modifier flags can be a combination of the following values:
;
; HOTKEYF_ALT = ALT key
; HOTKEYF_CONTROL = CTRL key
; HOTKEYF_EXT = Extended key
; HOTKEYF_SHIFT = SHIFT key
;
psl\SetHotkey(HotKey)
; Set Icon for the Link:
; There can be more than 1 icons in an icon resource file,
; so you have to specify the index.
;
psl\SetIconLocation(@IconFile$, IconIndexInFile)
ShellLink_SAVE:
; Query IShellLink For the IPersistFile interface For saving the
; shortcut in persistent storage.
If psl\QueryInterface(?IID_IPersistFile,@ppf.IPersistFile) = 0
; Ensure that the string is Unicode.
mem.s = Space(1000) ;AllocateMemory(1,1000)
MultiByteToWideChar_(#CP_ACP, 0, Link$, -1, mem, 1000)
;Save the link by calling IPersistFile::Save.
hres = ppf\Save(@mem,#True)
result = 1
ppf\Release()
EndIf
psl\Release()
EndIf
CoUninitialize_()
ProcedureReturn result
DataSection
CLSID_ShellLink:
; 00021401-0000-0000-C000-000000000046
Data.l $00021401
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
IID_IShellLink:
; DEFINE_SHLGUID(IID_IShellLinkA, 0x000214EEL, 0, 0);
; C000-000000000046
Data.l $000214EE
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
IID_IPersistFile:
; 0000010b-0000-0000-C000-000000000046
Data.l $0000010B
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
EndProcedure
Systray-Beispiele müsste es auch auf PureArea.net geben soviel ich weis.