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 inc函数和dec函数的用法

Delphi gdi+ 实现简单画图

Delphi中的strpas功能

Delphi判断sql server 服务是否断开

Delphi 判断两个时间差是否在一个指定范围内

Delphi 判断文本文件的编码格式

Delphi数据库实现从最后一条记录向上查询至首记录

Delphi adoquery添加用户及密码

Delphi 使控件变成圆角的方法

Delphi tmemo 可以显示、编辑多行文本

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



打赏

取消

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

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

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

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

评论

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