Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单
- {=================================================================
- 功 能:
- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式
- 参 数:
- 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;
http://www.cnblogs.com/shangdawei/p/4518740.html
Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单的更多相关文章
- vc++ windows 快速启动栏创建快捷方式
创建快速启动栏 在windows软件开发中,软件安装过程中总是需要在快速启动栏创建快捷方式,下面介绍一种快速启动栏创建快捷方式的方法,具体代码如下:(该方法不支持win10,目前还没有找到win10的 ...
- Win7 开启显示快速启动工具栏,发送到快速启动右键菜单
开启Win7快速启动栏 许多网友一定记得在 Windows 7 之前的 Windows 系统都有个快速启动(quick launch)区域. 比如 IE 浏览器.Windows Media Playe ...
- 根据权限显示隐藏SharePoint 2010快速启动栏的链接
转:http://www.360sps.com/Item/ShowAndHiddenLink.aspx 在SharePoint 2010的快速启动栏中可以根据权限来显示或隐藏列表.库.网站的链接,如果 ...
- LXPanel自定义添加应用程序到快速启动栏
LXPanel是Linux下LXDE项目的一个桌面面板软件.我一开始接触的时候,对于自己自定义的程序到快速启动栏绕了很多弯路,这里记录下,防止以后自己忘了.还有一点就是很多时候,panel下的应用程序 ...
- 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)
问题:如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏) 在XP下,添加方式是直接把快捷方式复制到%appdata%\Microsoft\Internet Explorer\Qui ...
- Win7快速启动栏
http://jingyan.baidu.com/article/456c463bbc1d140a583144cf.html 1. 在任务栏上右键 -> 工具栏 -> 新建工具栏. 在 ...
- win7和win8如何设置快速启动栏
a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...
- win7 系统如何设置快速启动栏
a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...
- 自定义 SharePoint 2010 快速启动栏和顶部链接栏
转:http://vickynuli.blog.163.com/blog/static/180438492201281434249486/ 在网上找到篇文章,自定义快速启动栏和顶部链接栏,以下为代码, ...
随机推荐
- oschina 开发工具
开发工具 29反编译工具 26持续集成系统 19SQL注入工具 139Git开源工具 138Java开发工具 43.NET开发工具 85PHP开发工具 96C/C++开发工具 70Ruby/Rails ...
- iOS 本地化应用程序(NSLocalizedString)
App本地化的需要不用讲大家也都明白,本文将介绍一种简单的方法来实现字符串的本地化. 在不考虑本地化的情况下,我们如果在代码中给一个Button定义title,一般会这样写: btn.titleLab ...
- 常用位操作,读8位 I2C 1302 18B20 .
/*1302*/ unsigned char DS1302OutputByte(void) //实时时钟读取一字节(内部函数) { unsigned char i; for(i=8; i>0; ...
- UItableViewCell上的button点击无响应的办法
由于IOS7中添加了滑动后出现编辑按钮的操作,所以使用scrollView来处理,UITableViewCellScrollView有对触摸的相应处理,导致按钮的点击效果被屏蔽了,但是点击事件还是在的 ...
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- 分享非常有用的Java程序 (关键代码) (一)
原文:分享非常有用的Java程序 (关键代码) (一) 分享一些非常有用的Java程序 (关键代码) ,希望对你有所帮助. 1. 得到当前方法的名字 String methodName = Th ...
- Docker学习笔记(4) — 开启Docker远程访问
默认情况下,Docker守护进程会生成一个socket(/var/run/docker.sock)文件来进程本地进程通信,而不会监听任何端口,因此只能在本地使用docker客户端或者使用Docker ...
- Linux 命令整理
一.文件目录命令 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~; ...
- [置顶] ssize_t与size_t-linux
ssize_t: signed size_t [注释:signed 有符号] size_t: 标准C库中定义的,应为unsigned int [注释:unsigned 无符号] 一.size_t 增强 ...
- linux网络体系架构
原创kylin_zeng:http://blog.csdn.net/kylin_fire_zeng 本文参考国嵌视频教程,再此感谢国嵌教育. 一.协议栈层次对比: 1)网络接口层把数据链路层和物理层 ...