创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式...
功 能:
创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式
参 数:
FileName : 快捷方式执行文件名
Description : 快捷方式描述信息
Arguements : 快捷方式执行参数
ShowName : 快捷方式显示名称
Location : 快捷方式类别
id : 需设置状态的队列号(255 为设置)
CreateOrDelete: 是创建还是删除(默认为创建 true)
返 回 值: 无
备 注:
需要引用 Registry, ShlObj, ComObj, ActiveX, RegStr 单元
=================================================================}
procedure TMainForm.CreateShortcut(FileName,Description,Arguements,ShowName: string;
Location: ShortcutType; id: byte; CreateOrDelete: boolean=true);
var
cObj :IUnknown;
sLink :IShellLink;
pFile :IPersistFile;
sDir,spath,key,tmp :string;
wFileName :WideString;
mReg :TRegistry;
begin
cObj :=CreateComObject(CLSID_ShellLink); //创建COM对象
sLink :=cObj as IShellLink; //COM对象转化为IShellLink型接口
pFile :=cObj as IPersistFile; //COM对象转化为IPersistFile型接口
//获取路径
sPath :=ExtractFilePath(FileName);
with sLink do begin
SetPath(PChar(FileName)); //设置执行文件名
SetArguments(PChar(arguements)); //设置执行参数
SetDescription(Pchar(Description)); //设置描述信息
SetWorkingDirectory(PChar(sPath)); //设置工作路径,即执行程序所在目录
end;
//获取各快捷方式的实际目录
mReg :=TRegistry.Create;
with mReg do begin
if Location=ST_CONTEXT then //添加右键菜单
begin
RootKey :=HKEY_CLASSES_ROOT;
tmp:= '*shell'+ShowName;
if CreateOrDelete then
begin
if OpenKey(tmp,true) then
begin
//用writestring将设置值写入打开的主键
WriteString('',ShowName+'(&k)');
CloseKey;
end;
if OpenKey(tmp+'command',true) then
begin
//command子键的内容是点击右键后选择相应项后要运行的程序;
//%1是在单击右键时选中的文件名
//WriteString(,'c:delphimyprogram.exe+"%1"');
WriteString('',FileName);
CloseKey;
end;
end
else
DeleteKey(tmp);
Free;
exit;
end;
RootKey :=HKEY_CURRENT_USER;
key :=REGSTR_PATH_EXPLORER; //Delphi在单元RegStr中定义的常量
tmp :=key + 'Shell Folders';
OpenKey(tmp, false);
case Location of
ST_DESKTOP: sDir :=ReadString('Desktop');
ST_SENDTO: sDir :=ReadString('SendTo');
ST_STARTMENU: sDir :=ReadString('Start Menu');
ST_PROGRAMS: sDir :=ReadString('Programs');
ST_QUICKLAUNCH:
begin
sDir :=ReadString('AppData');
sDir :=sDir + 'MicrosoftInternet ExplorerQuick Launch';
end;
end;
//生成快捷方式文件名
if ShowName='' then
begin
ShowName :=ChangeFileExt(FileName, '.Lnk');
ShowName :=ExtractFileName(ShowName);
end
else
ShowName:= ShowName+'.lnk';
if sDir<>'' then
begin
//生成快捷方式全路径名
wFileName :=sDir + '' + ShowName;
if (id<255) then
begin
if FileExists(wFileName) then
//RzCheckGroup1.ItemChecked[id]:= true;
end
else
//保存或删除生成的快捷方式文件
if CreateOrDelete then
pFile.Save(PWChar(wFileName), false)
else
DeleteFile(wFileName);
end;
Free;
end;
end;
转载于:https://blog.51cto.com/bigpower/109289
创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式...相关推荐
- 如何创建Win 7系统快速启动栏
如何创建Win 7系统快速启动栏 按鼠标右键点击任务在 工具栏 新建工具栏, 在空白处输入如下内容:"%UserProfile%\AppData\Roaming\Microsoft\Inte ...
- SharePoint 2010 如何隐藏快速启动栏,顶部导航及Ribbon菜单
新建Application页面默认会显示快速启动栏,顶部导航及Ribbon菜单.如果你想在对话框框架(Dialog Framework)里打开该application页面,这些东西会占用很多空间,让你 ...
- 怎么把桌面计算机放到快速启动栏,怎么把桌面图标放到快速启动栏
1. 如何把桌面图标放于快速启动栏 拖动图标到任务栏,之后删除桌面图标 不行的话 点击"开始"菜单→"运行"命令,在弹出的"运行"对话框中输 ...
- 如何添加显示桌面图标置于快速启动栏
点击"开始→运行",在弹出的"运行"对话框中输入"REGSVR32 /n /i:u shell32"(不含双引号),然后回车,片刻后会弹出& ...
- 创建快捷方式 (并添加到快速启动栏 、桌面、开始菜单)
首先需要获取三个路径 :桌面路径 .快速启动栏路径. 开始->程序组路径 //得到当前桌面路径 BOOL GetDesktopPath(char *pszDesktopPath) { LPITE ...
- win7 如何设置快速启动栏
Windows 7的装后发现,以前的"快速启动栏"已经消失了.这对某些用户来说可能会很不习惯(至少我是这样),然而Windows 7任务栏提供的SuperBar区域并不适合放置太多 ...
- 快速启动栏增强工具 Free Launch Bar
以前看到别人的快速启动栏里边的文件夹是菜单形式的,而自已在里面放个文件夹只是个图标而已.非常之羡慕,在网上搜索了下,大家都说什么解锁工具栏,然后在上面新建一个工具栏,选中目的文夹,将新的工具栏长度调窄 ...
- 创建快捷方式到桌面、任务栏、开始菜单、快速启动栏、程序组中
//得到快速启动栏的路径 BOOL GetIEQuickLaunchPath(WCHAR *pszIEQueickLaunchPath) {LPITEMIDLIST ppidl;if (SHGetSp ...
- 如何在Windows中将“显示桌面”图标移动到快速启动栏或任务栏
If you aren't a fan of scrolling your pointer over to the lower right corner of your monitor to show ...
最新文章
- 谷歌AI新技术:通过追踪虹膜,普通摄像头也能测距
- sellhis股票平面图
- iOS 5将加入全新的通知信息和桌面Widgets
- 有关家居产品设计的外国专著_为啥外国的二手家具被称为vintage,中国就叫破烂?差在哪儿了?...
- Apache SolrCloud安装
- ssis修改数据库数据_SSIS平衡数据分配器概述
- JavaScript中Write和Writeln的区别
- error C2864 只有静态常量整型数据成员才可以在类中初始化
- atitit.404错误的排查流程总结vOa6
- RedisRepository封装—Redis发布订阅以及StackExchange.Redis中的使用
- 好看的php表格样式,分享四个非常好看实用的CSS样式表格
- matlab排队模型和排队系统仿真
- 查看计算机bios版本,如何查看电脑BIOS版本
- TCP协议:RST标志位
- 需要系数 计算机房,计算电流及需要系数表.xls
- Linux 查看ip没有ens33解决方法
- 用计算机唱歌弹奏china,新目标英语专题练习:句型转换(附答案)
- 哈工大2021软件构造lab1总结
- windows中oracle自动备份
- 7-2 江学长的游戏
热门文章
- 无人驾驶卡车实现量产 主线科技6个月完成13辆商业交付
- AI帮你靠“想象”打字:手机电脑软键盘也能盲打了,准确率能达到95%
- Mac系统兼容软件 CrossOver 试用到期了怎么办
- 通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤
- 复习webpack的常用loader
- 罗田用好“大数据”力促扶贫更精准
- mysql延迟判断模板
- IT民工系列——c#操作Microsoft IE,实现自动登录吧!
- RLC协议简单理解2-RLC窗口的维护
- 云计算技术 — 数据中心基础架构变迁史