مهدي
01-03-2008, 05:01 PM
الكود التالي يساعدك على إنشاء رابط لملف ما على سطح المكتب و حذفه
في المثال التالي الرابط يسمى دلفي للعرب بإمكانك تغيير إسم الرابط، يساعدك هذا كود على إشاء برامج تنصيب في المستقبل.
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
...
uses ShlObj, ActiveX, ComObj;
...
procedure TForm1.Button1Click(Sender: TObject);
var
IObject : IUnknown;
ISLink : IShellLink;
IPFile : IPersistFile;
PIDL : PItemIDList;
InFolder : array[0..MAX_PATH] of Char;
TargetName : String;
LinkName : WideString;
begin
if OpenDialog1.Execute then
begin
TargetName := OpenDialog1.FileName;
IObject := CreateComObject(CLSID_ShellLink) ;
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
with ISLink do
begin
SetPath(pChar(TargetName)) ;
SetWorkingDirectory(pChar(ExtractFilePath(TargetNa me))) ;
end;
SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
SHGetPathFromIDList(PIDL, InFolder) ;
LinkName := InFolder + '\دلفي للعرب.lnk'; // إسم الرابط
IPFile.Save(PWChar(LinkName), false) ;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
PIDL : PItemIDList;
InFolder : array[0..MAX_PATH] of Char;
LinkName : WideString;
begin
SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
SHGetPathFromIDList(PIDL, InFolder) ;
LinkName := InFolder + '\دلفي للعرب.lnk';
DeleteFile(LinkName) ;
end;
في المثال التالي الرابط يسمى دلفي للعرب بإمكانك تغيير إسم الرابط، يساعدك هذا كود على إشاء برامج تنصيب في المستقبل.
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
...
uses ShlObj, ActiveX, ComObj;
...
procedure TForm1.Button1Click(Sender: TObject);
var
IObject : IUnknown;
ISLink : IShellLink;
IPFile : IPersistFile;
PIDL : PItemIDList;
InFolder : array[0..MAX_PATH] of Char;
TargetName : String;
LinkName : WideString;
begin
if OpenDialog1.Execute then
begin
TargetName := OpenDialog1.FileName;
IObject := CreateComObject(CLSID_ShellLink) ;
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
with ISLink do
begin
SetPath(pChar(TargetName)) ;
SetWorkingDirectory(pChar(ExtractFilePath(TargetNa me))) ;
end;
SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
SHGetPathFromIDList(PIDL, InFolder) ;
LinkName := InFolder + '\دلفي للعرب.lnk'; // إسم الرابط
IPFile.Save(PWChar(LinkName), false) ;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
PIDL : PItemIDList;
InFolder : array[0..MAX_PATH] of Char;
LinkName : WideString;
begin
SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
SHGetPathFromIDList(PIDL, InFolder) ;
LinkName := InFolder + '\دلفي للعرب.lnk';
DeleteFile(LinkName) ;
end;