unit creat_cj;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
,ActiveX,ComObj,Shlobj,Registry, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
const
IID_IPersistFile:TGUID='{0000010B-0000-0000-C000-000000000046}';
implementation{$R *.DFM}
function GetShellFolder(const Folder:String):String;
const
cWin32='SOFTWARE\Microsoft\Windows\CurrentVersion';
cSHellPrefix='\Explorer\Shell Folders';
var
r:TRegistry;
begin
result:='';
r:=TRegistry.Create;
try
r.RootKey:=HKEY_CURRENT_USER;
if r.OpenKey(cWin32+cShellPrefix,False) then
Result:=r.readstring(Folder)+'\';
finally
r.Free;
end;
end;
function CreateLink(aPathObj,aPathLink,aDesc:string):Boolean;
var
sLink:IShellLink;
PersFile:IPersistFile;
begin
sLink.SetPath(pchar(apathobj));
sLink.SetDescription(PChar(aDesc));
if SUCCEEDED(slink.queryInterface(IID_IPersistFile,PersFile)) then
begin
PersFile.Save(StringToOLEStr(aPathlink),True);
result:=false;
end;
result:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Createlink('e:\qyfw1\qyfw.exe',GetShellFolder('Desktop')+'mylink.lnk','dfdfd');
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
,ActiveX,ComObj,Shlobj,Registry, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
const
IID_IPersistFile:TGUID='{0000010B-0000-0000-C000-000000000046}';
implementation{$R *.DFM}
function GetShellFolder(const Folder:String):String;
const
cWin32='SOFTWARE\Microsoft\Windows\CurrentVersion';
cSHellPrefix='\Explorer\Shell Folders';
var
r:TRegistry;
begin
result:='';
r:=TRegistry.Create;
try
r.RootKey:=HKEY_CURRENT_USER;
if r.OpenKey(cWin32+cShellPrefix,False) then
Result:=r.readstring(Folder)+'\';
finally
r.Free;
end;
end;
function CreateLink(aPathObj,aPathLink,aDesc:string):Boolean;
var
sLink:IShellLink;
PersFile:IPersistFile;
begin
sLink.SetPath(pchar(apathobj));
sLink.SetDescription(PChar(aDesc));
if SUCCEEDED(slink.queryInterface(IID_IPersistFile,PersFile)) then
begin
PersFile.Save(StringToOLEStr(aPathlink),True);
result:=false;
end;
result:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Createlink('e:\qyfw1\qyfw.exe',GetShellFolder('Desktop')+'mylink.lnk','dfdfd');
end;end.
解决方案 »
- delphi的cxgrid如何像pagecontrol一样多面板显示
- 请教两个exe文件怎么通过一个dll进行数据的交换。
- ADOquery的一个小问题
- 我就这么多分了,希望各位高手帮帮忙,帮小弟解决这个问题,见人有分!!!(关于timer组件监视数据库的问题)
- 为什么用delphi和java针对同一信息做DES算法加密出来的结果不一样?
- 请教一个关于数据库的问题,有分!
- 请教:ADO+SQLSERVER
- 伴水请进!(100分)
- 怎么使image里16m色的图片平滑保存为256色的图片?
- 请问怎样得到已连接到某SQL SERVER数据库的客户数?
- 怎样判断MediaPlayer1正在播放声音???
- 着急,数据结构题集的问题(急) 》,严蔚敏,吴维民 编著!!!!!!!!
sLink.SetPath(pchar(apathobj));语句前创建sLink语句OLECheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER,IShellLink, SLink));