delphi_zw 发表于 2012-11-22 16:41:16

这段代码是在桌面创建个快捷试,问下我要在程序当前目录创建快捷试,该怎么做

begin
    //创建快捷方式到桌面
    StartupFilename :=Application.ExeName;
    tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展
    tmpSLink := tmpObject as IShellLink;//取得接口
    tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口
    tmpSLink.SetPath(pChar(StartupFilename));//设定所在路径
    tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录
    SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);//获得桌面的Itemidlist
    tmpSLink.SetDescription('我的程序的描述');
    tmpSLink.SetIconLocation(Pchar(StartupFilename),0);
    SHGetPathFromIDList(PIDL,StartupDirectory);//获得桌面路径
    LinkFilename := StartupDirectory + '\我的程序.lnk';
    tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件
end;



这段代码是在桌面创建个快捷试,问下我要在程序当前目录创建快捷试,该怎么做


z____ 发表于 2012-11-29 19:28:37

http://www.cnblogs.com/huangygdelphi/articles/2302288.html

aminghanhua 发表于 2012-12-18 10:46:00

获取当前目录不就行了吗
用delphi自带的几个函数
ExtractFilePath//路径后面带有 "/"(不管是在磁盘根目录还是哪里)   
ExtractFileName//文件名   
ExtractFileExt   //扩展名
ExtractFilePath//路径后面带有 "/"(不管是在磁盘根目录还是哪里)
ExtractFileName//文件名
ExtractFileExt   //扩展名
例子:
ExtractFilePath(ParamStr(0));// C:/   
ExtractFileName(ParamStr(0));// Project.exe   
ExtractFileExt(ParamStr(0));   // .exe
页: [1]
查看完整版本: 这段代码是在桌面创建个快捷试,问下我要在程序当前目录创建快捷试,该怎么做