创建快捷方式到[启动]

创建快捷方式到[启动]
〖暴风侧影★注释〗


//根据zswang和"超级猛料"部分函数改编
//比放到注册表里麻烦多了
ContractedBlock.gif ExpandedBlockStart.gif Code
//创建到当前用户的[启动]里,CreateLinkToStartUp中最后一个参数设置为True
//创建到所有用户的启动里,CreateLinkToStartUp中最后一个参数设置为False
//创建到别的用户里,可以修改一下,不过。。。这样做不好吧。。。
function GetSpecialFolderDir(const folderid:integer): String;
var
  pidl: pItemIDList;
  buffer: 
array[0..255of 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;

转载于:https://www.cnblogs.com/Handll/archive/2009/07/27/1531903.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值