delphi 创建Win桌面快捷方式,实现360桌面图标数字提示 或 类似安卓的右上角的数字提示


本文整理自网络,侵删。

 

创建Win桌面快捷方式,实现360桌面图标数字提示 或 类似安卓的右上角的数字提示

 

 

// 引用单元  
uses
  Winapi.ShlObj, System.Win.ComObj, Winapi.ActiveX, System.Win.Registry;


//参数说明 运行参数,快捷方式图标,备注,快捷快捷方式名,开始菜单快捷方式名
procedure NewLink(AppExe, AIco, Remark, DesktopLnk:String; MenuName: String = '');
var
  AComObj: IUnknown;
  ShellLink: Winapi.ShlObj.IShellLink;
  PersiFile: Winapi.ActiveX.IPersistFile;
  AReg: System.Win.Registry.TRegIniFile;
  AStr: String;
begin // 出处  www.delphifmx.com/node/48
  AComObj  := System.Win.ComObj.CreateComObject(CLSID_ShellLink); //快捷方式的初始化
  ShellLink:= AComObj as IShellLink;
  PersiFile:= AComObj as IPersistFile;
  //目标 (运行命令及参数)
  ShellLink.SetPath(LPWSTR(AppExe));
  //起始位置(路径)
  ShellLink.SetWorkingDirectory(LPWSTR(ExtractFilePath(AppExe)));
  //备注
  ShellLink.SetDescription(LPWSTR(Remark));
  //设置图标
  if AIco<>'' then begin
    ShellLink.SetIconLocation(LPWSTR(AIco), 0);
  end;

  //保存到桌面
  if DesktopLnk<>'' then begin
    AReg := TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\Explorer');
    AStr := AReg.ReadString('Shell Folders''Desktop''');
    AReg.Free;
    AReg:= nil;
    //保存
    AStr := AStr + PathDelim + DesktopLnk + '.lnk';
    PersiFile.Save(POleStr(AStr), False);
  end;
  //保存到开始菜单
  if MenuName<>'' then begin
    AReg := TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\Explorer');
    AStr := AReg.ReadString('Shell Folders''Start Menu''');
    AReg.Free;
    AReg:= nil;
    //保存
    AStr := AStr + PathDelim + MenuName + '.lnk';
    PersiFile.Save(POleStr(AStr), False);
  end;
end;

“”
// 通过调用上面 创建桌面快捷方式函数,生成桌面快捷方式,同时绘制数字小图标后保存 ico ,可实现类似 360 效果的桌面数字提示
procedure TForm1.Button1Click(Sender: TObject);
var
  AIco, Remark: String;
begin
  Remark:= 'www.delphifmx.com '#13#10'  作者: 大悟还俗';
  AIco:= ''; // 这里不断更换不同数字的图标路径
  NewLink(ParamStr(0) ,AIco ,Remark, '测试');

end;

 

来源:http://www.delphifmx.com/node/48

相关阅读 >>

老外写的在桌面添加快捷方式(Delphi xe5 android)

Delphi任务对话框ttaskdialog类介绍

Delphi 遍历所有edit控件

Delphi程序运行在64位机器连接odbc的问题

Delphi中控制扫描仪

Delphi2007-Delphi2010 程序不出现在任务栏的方法

Delphi下载程序并且urldownloadtofile的进度提示

Delphi 内存修改的实现

Delphi 字符串与日期格式互转

Delphi listview的用法

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...