如何动态的生成一个快捷方式文件?

3CL 2003-04-26 07:46:45
如何动态的生成一个快捷方式文件,并使其指向某个程序,并运行该快捷方式文件
...全文
78 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yansea 2003-04-27
  • 打赏
  • 举报
回复
const
CCH_MAXNAME=255;

LNK_RUN_MIN=7;

LNK_RUN_MAX=3;

LNK_RUN_NORMAL=1;

type LINK_FILE_INFO=record

FileName:array[0..MAX_PATH] of char;

WorkDirectory:array[0..MAX_PATH] of char;

IconLocation:array[0..MAX_PATH] of char;

IconIndex:integer;

Arguments:array[0..MAX_PATH] of char;

Description:array[0..CCH_MAXNAME] of char;

ItemIDList:PItemIDList;

RelativePath:array[0..255] of char;

ShowState:integer;

HotKey:word;

end;

function CreateLinkFile(const info:LINK_FILE_INFO;const DestFileName:string=''):boolean;

var

anobj:IUnknown;

shlink:IShellLink;

pFile:IPersistFile;

wFileName:widestring;

begin

wFileName:=destfilename;

anobj:=CreateComObject(CLSID_SHELLLINK);

shlink:=anobj as IShellLink;

pFile:=anobj as IPersistFile;

shlink.SetPath(info.FileName);

shlink.SetWorkingDirectory(info.WorkDirectory);

shlink.SetDescription(info.Description);

shlink.SetArguments(info.Arguments);

shlink.SetIconLocation(info.IconLocation,info.IconIndex);

// shlink.SetIDList(info.ItemIDList);

shlink.SetHotkey(info.HotKey);

shlink.SetShowCmd(info.ShowState);

shlink.SetRelativePath(info.RelativePath,0);

if DestFileName='' then

wFileName:=ChangeFileExt(info.FileName,'lnk');

result:=succeeded(pFile.Save(pwchar(wFileName),false));

end;

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧