创建快捷方式到[启动]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 lw549 的 blog

//根据zswang和"超级猛料"部分函数改编
//比放到注册表里麻烦多了
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
//创建到别的用户里,可以修改一下,不过。。。这样做不好吧。。。

本文关键:创建快捷方式到[启动]
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top