一个文件改了名字,快捷指引路径怎么用Delphi实现?

qq_27156679 2017-09-29 10:24:31
例子:d:\ aaa.txt, 桌面有个快捷方式 A, 我把aaa.txt改名称 ccc.TXT ,
我这快捷键如何重新指引到改名后的文件中。

想用Delphi实现,谢谢!
...全文
851 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_27156679 2017-09-30
  • 打赏
  • 举报
回复
我想结贴 散粉了,无奈没人回复!
leeky 2017-09-30
  • 打赏
  • 举报
回复
qq_27156679 2017-09-30
  • 打赏
  • 举报
回复
OK 了 首选删除(DeleteFile (FILENAME))旧的快捷方式,然后调用下面的方法生成一个新的快捷方式。 ---------
procedure TForm1.CreateLinkFile(SourceFile, ShortCutName, Description: string);
var
  IUnk: IUnknown;
  ShellLink: IShellLink;
  IPFile: IPersistFile;
  tmpShortCutName: string;
  WideStr: WideString;
  i: integer;
begin
  if SUCCEEDED(CoInitialize(nil)) then
  begin
    IUnk := CreateComObject(CLSID_ShellLink);
    ShellLink := IUnk as IShellLink;
    IPFile := IUnk as IPersistFile;

    with ShellLink do
    begin
      SetPath(PChar(SourceFile)); //执行程序的文件名
      SetDescription(PChar(Description)); //提示说明文本
      SetWorkingDirectory(PChar(ExtractFilePath(SourceFile))); //启动目录
    end;
    ShortCutName := ChangeFileExt(ShortCutName, '.lnk');

    if FileExists(ShortCutName) then //如果文件名存在,就以数据序号来重新命名一个新的文件名
    begin
      ShortCutName := Copy(ShortCutName, 1, Length(ShortCutName) - 4);
      i := 1;
      repeat
        tmpShortCutName := ShortCutName + '(' + IntToStr(i) + ').lnk';
        Inc(i);
      until not FileExists(tmpShortCutName);
      WideStr := tmpShortCutName;
    end
    else WideStr := ShortCutName;

    IPFile.Save(PWChar(WideStr), False);

    CoUninitialize;
  end;
end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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