skyroam漫游宝价格:创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 00:47:30
{=================================================================
功 能:
创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式
参 数:
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;
桌面快速启动栏
如何添加显示桌面到快速启动栏?
如何把桌面显示添加到快速启动栏呢?
怎样把桌面快捷方式弄到快速启动栏里?
怎么创建“显示桌面”的这个快速启动 选项
我是XP系统怎么样才能在快速启动栏创建一个显示桌面项啊谢谢了
快速启动栏的“显示桌面”被删!
快速启动栏桌面图表复原
桌面下方快速启动栏不见了,怎么回事?
桌面快速启动
桌面快速启动栏里的“显示桌面”没了
怎么把桌面快捷方式弄到 快速启动 里面?
怎样在“快速启动”中创建一个“显示桌面”的快捷方式?
如何在电脑桌面的工具栏上创建一的桌面的快速启动按钮
我不小心把快速启动的 显示桌面给删了,怎么才能再把它加到快速启动的启动栏里面呢?
为什么我的电脑无法创建快速启动栏?
xp里的快速启动栏无法创建,该怎么办?
快速启动栏丢了 ,提示无法创建工具栏
不能创建快速启动栏??该怎么解决?
怎么在快速启动栏创建图标呢
桌面快速启动分类工具
快速启动栏里的显示桌面不见了怎么办?
关于WINDOWS界面快速启动栏里“显示桌面”
快速启动栏显示桌面丢失,怎样找回来??