本文整理自网络,侵删。
创建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)
Delphi2007-Delphi2010 程序不出现在任务栏的方法
Delphi下载程序并且urldownloadtofile的进度提示
更多相关阅读请进入《Delphi》频道 >>