我在用程序创建快捷方式出现:“access violation address 00440667 in module"ccj.exe".Read of adsress ffffffff."错

冰刀封情 2003-09-22 07:58:11
unit creat_cj;

interface

uses
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.
...全文
43 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰刀封情 2003-09-24
  • 打赏
  • 举报
回复
给了分了那们看不到呢
76liujing 2003-09-23
  • 打赏
  • 举报
回复
在CreateLink函数的
sLink.SetPath(pchar(apathobj));语句前创建sLink语句

OLECheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER,IShellLink, SLink));

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧