时间: 2021-07-31 作者:daque
function getspecialfolderdir(const folderid:integer): string;var pidl: pitemidlist; buffer: array[0..255] of char;begin//取指定的文献夹名目表//csidl_startup:启用 shgetspecialfolderlocation(application.handle , folderid, pidl); shgetpathfromidlist(pidl, buffer); //变换成文献体例的路途 result:=strpas(buffer);end;function createshelllink(mpath: string; mworkingdirectory: string; mfilename: widestring): boolean; { 归来创造赶快办法能否胜利 }var vshelllink: ishelllink; vpersistfile: ipersistfile; vunknown: iunknown;begin result := true; try vunknown := createcomobject(clsid_shelllink); vshelllink := vunknown as ishelllink; vpersistfile := vunknown as ipersistfile; vshelllink.setpath(pchar(mpath)); vshelllink.setworkingdirectory(pchar(mworkingdirectory)); if extractfileext(mfilename) <> '.lnk' then mfilename := mfilename + '.lnk'; vpersistfile.save(pwchar(mfilename), false); except result := false; end;end;
function createlinktostartup(appname, workingdirectory, linkfilename: string; currentuser: boolean = true): boolean;begin if currentuser then //currentuser result := createshelllink(appname, workingdirectory, getspecialfolderdir(csidl_startup) + '\' + linkfilename) else//all user result := createshelllink(appname, workingdirectory, getspecialfolderdir(csidl_common_startup) + '\' + linkfilename); end;//创造到暂时用户的[启用]里,createlinktostartup中结果一个参数树立为true//创造到一切用户的启用里,createlinktostartup中结果一个参数树立为false