yes i know there is sometimes i left this forum but there is some reason and like you know that : hunt for natural and it is up to gallop.
i'm back know

Code: Select all
ProcedureDLL CreateShortcutPB(Path.s, LINK.s, Argument.s, DESCRIPTION.s, WorkingDirectory.s, ShowCommand.l, IconFile.s, 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
CreateShortcutPB("C:\Windows\System32\Notepad.exe","C:\Super Notepad.lnk","","NotePAD is a lightweight editor","",#SW_SHOWMAXIMIZED,"%SystemRoot%\system32\SHELL32.dll",12)