初来,问个问题? 经常看到操作系统中有创建快捷方式。如何实现如何用语言实现创建快捷方式?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/topic/2516/2516704.xml?temp=.4567224那里就有,自己看吧 我在网上找了一篇(好象就是csdn以前发表过,我忘了具体位置。重发一下),我没有试过。你自己看看!好的话通知我一下!!!procedure Tmainfrm.N30Click(Sender: TObject);var MyObject : IUnknown; MySLink : IShellLink; MyPFile : IPersistFile; FileName : String; Directory : String; WFileName : WideString; MyReg : TRegIniFile;begin MyObject := CreateComObject(CLSID_ShellLink); MySLink := MyObject as IShellLink; MyPFile := MyObject as IPersistFile; FileName := paramstr(0); with MySLink do begin SetPath(pchar(FileName)); // 1999.4.9, as bug before! SetHotkey(vk_F11); SetWorkingDirectory(PChar(ExtractFilePath(FileName))); end; MyReg := TRegIniFile.Create( 'Software\MicroSoft\Windows\CurrentVersion\Explorer'); // 在桌面上生成快捷图标 Directory := MyReg.ReadString('Shell Folders','Desktop',''); // 在Start Menu中加入相应的ShortCut { 1:Directory := MyReg.ReadString('Shell Folders','Start Menu',''); // 在'发送到'中加入相应的ShortCut 2:Directory := MyReg.ReadString('Shell Folders','SendTo',''); end; } WFileName := Directory+'\中鑫工资管理系统 2003.lnk'; MyPFile.Save(PWChar(WFileName),False); MyReg.free; application.messagebox('成功的创建!!!','消息框',mb_ok+mb_iconinformation);end;//上边的是在开始菜单,下边倒桌面:procedure Tmainfrm.M2Click(Sender: TObject);var MyObject : IUnknown; MySLink : IShellLink; MyPFile : IPersistFile; FileName : String; Directory : String; WFileName : WideString; MyReg : TRegIniFile;begin MyObject := CreateComObject(CLSID_ShellLink); MySLink := MyObject as IShellLink; MyPFile := MyObject as IPersistFile; FileName := paramstr(0); with MySLink do begin SetPath(pchar(FileName)); // 1999.4.9, as bug before! SetHotkey(vk_F11); SetWorkingDirectory(PChar(ExtractFilePath(FileName))); end; MyReg := TRegIniFile.Create( 'Software\MicroSoft\Windows\CurrentVersion\Explorer'); // 在桌面上生成快捷图标 //Directory := MyReg.ReadString('Shell Folders','Desktop',''); // 在Start Menu中加入相应的ShortCut Directory := MyReg.ReadString('Shell Folders','Start Menu',''); // 在'发送到'中加入相应的ShortCut { 2:Directory := MyReg.ReadString('Shell Folders','SendTo',''); end; } WFileName := Directory+'\中鑫工资管理系统 2003.lnk'; MyPFile.Save(PWChar(WFileName),False); MyReg.free; application.messagebox('成功的创建!!!','消息框',mb_ok+mb_iconinformation);end; 转贴://在桌面上建立快捷方式procedure TForm1.Button1Click(Sender: TObject);vartmpObject : IUnknown;tmpSLink : IShellLink;tmpPFile : IPersistFile;PIDL : PItemIDList;StartupDirectory : array[0..MAX_PATH] of Char;StartupFilename : String;LinkFilename : WideString;beginStartupFilename := 'c:\windows\notepad.exe';tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展tmpSLink := tmpObject as IShellLink;//取得接口tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口tmpSLink.SetPath(pChar(StartupFilename));//设定notepad.exe所在路径tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);//获得桌面的ItemidlistSHGetPathFromIDList(PIDL,StartupDirectory);//获得桌面路径LinkFilename := StartupDirectory + '\MyNotepad.lnk';tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件end; 问个字符串处理的问题 关于sql的问题 我还活着…… 问个简单的问题:动态数组的类型是不是只能是基类? 使用sendmessage时,如何获得Twebbrowser里的html的按扭的句柄???? 急用!!帮我做一个查询系统 关于数组的问题? 如何申请MSN? 打印表的问题 一个关于热键的 简单问题? 27日我MM要见我父母了! 谁知道邮件中的=?GB2312?Q于=?GB2312?B的差别
那里就有,自己看吧
procedure Tmainfrm.N30Click(Sender: TObject);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
FileName : String;
Directory : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
FileName := paramstr(0);
with MySLink do begin
SetPath(pchar(FileName)); // 1999.4.9, as bug before!
SetHotkey(vk_F11);
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
'Software\MicroSoft\Windows\CurrentVersion\Explorer');
// 在桌面上生成快捷图标
Directory := MyReg.ReadString('Shell Folders','Desktop','');
// 在Start Menu中加入相应的ShortCut
{ 1:Directory := MyReg.ReadString('Shell Folders','Start Menu','');
// 在'发送到'中加入相应的ShortCut
2:Directory := MyReg.ReadString('Shell Folders','SendTo','');
end; } WFileName := Directory+'\中鑫工资管理系统 2003.lnk';
MyPFile.Save(PWChar(WFileName),False);
MyReg.free;
application.messagebox('成功的创建!!!','消息框',mb_ok+mb_iconinformation);
end;//上边的是在开始菜单,下边倒桌面:
procedure Tmainfrm.M2Click(Sender: TObject);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
FileName : String;
Directory : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
FileName := paramstr(0);
with MySLink do begin
SetPath(pchar(FileName)); // 1999.4.9, as bug before!
SetHotkey(vk_F11);
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
'Software\MicroSoft\Windows\CurrentVersion\Explorer');
// 在桌面上生成快捷图标
//Directory := MyReg.ReadString('Shell Folders','Desktop','');
// 在Start Menu中加入相应的ShortCut
Directory := MyReg.ReadString('Shell Folders','Start Menu','');
// 在'发送到'中加入相应的ShortCut
{ 2:Directory := MyReg.ReadString('Shell Folders','SendTo','');
end; } WFileName := Directory+'\中鑫工资管理系统 2003.lnk';
MyPFile.Save(PWChar(WFileName),False);
MyReg.free;
application.messagebox('成功的创建!!!','消息框',mb_ok+mb_iconinformation);
end;
//在桌面上建立快捷方式
procedure TForm1.Button1Click(Sender: TObject);
var
tmpObject : IUnknown;
tmpSLink : IShellLink;
tmpPFile : IPersistFile;
PIDL : PItemIDList;
StartupDirectory : array[0..MAX_PATH] of Char;
StartupFilename : String;
LinkFilename : WideString;
begin
StartupFilename := 'c:\windows\notepad.exe';
tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展
tmpSLink := tmpObject as IShellLink;//取得接口
tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口
tmpSLink.SetPath(pChar(StartupFilename));//设定notepad.exe所在路径
tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录
SHGetSpecialFolderLocation(0,
CSIDL_DESKTOPDIRECTORY,
PIDL);//获得桌面的Itemidlist
SHGetPathFromIDList(PIDL,
StartupDirectory);//获得桌面路径
LinkFilename := StartupDirectory + '\MyNotepad.lnk';
tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件
end;