![]() |
|
كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6) +--- قسم : دلفي والتعامل مع الملفات (https://delphi4arab.net/forum/forumdisplay.php?fid=22) +--- الموضوع : كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه (/showthread.php?tid=69) الصفحات:
1
2
|
كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - مهدي - 01-03-2008 الكود التالي يساعدك على إنشاء رابط لملف ما على سطح المكتب و حذفه في المثال التالي الرابط يسمى دلفي للعرب بإمكانك تغيير إسم الرابط، يساعدك هذا كود على إشاء برامج تنصيب في المستقبل. كود : 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(TargetName))) ;
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;كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - Maher Tannous - 01-03-2008 شكراً لك أخي الكريم كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - مهدي - 04-03-2008 أهلا بكم إخوتي جميعا و هذا الكود يقوم بإنشاء و حذف رابط لملف على قائمة البرامج كود : 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(TargetName))) ;
end;
SHGetSpecialFolderLocation(0,CSIDL_COMMON_PROGRAMS ,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_COMMON_PROGRAMS ,PIDL);
SHGetPathFromIDList(PIDL, InFolder) ;
LinkName := InFolder + '\دلفي للعرب.lnk';
DeleteFile(LinkName) ;
end;كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - STRELiTZIA - 19-03-2008 جزاك الله خيرا اخي مهدي ![]() ملاحظة صغيرة لجعل الــ Code portable و تطويره ليصبح في النهاية Component - تقسيمه الى Procedure او function مستقلة. يجعله متعدد الاتسعمالات. - و منها جعله بسهولة Component. تحياتي
كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - لانا - 19-03-2008 جزاك الله كل الخير.. لو سمحت اخي ممكن تشرح لي بعض المفردات بشكل بسيط..لأنه في النهاية أنا لا **** نسخ ولصق.. CLSID_ShellLink, IPersistFile, PItemIDList ,SHGetPathFromIDList جعلها الله في موازين حسناتك.. كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - STRELiTZIA - 19-03-2008 في ايطار نفس الموضوع... مرفق ملف مصدري يعمل Link مباشرة في Desktop معدل. تحياتي كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - مهدي - 19-03-2008 و جزاكم إخوتي الكرام إقتباس :لجعل الــ Code portable و تطويره ليصبح في النهاية Component لم يسبق لي و أن أنجزت مكونا ****ا أن تقوم بإكمال الفكرة الطيبة. إقتباس :CLSID_ShellLink, IPersistFile, PItemIDList ,SHGetPathFromIDList الكود المصدري ليس من إنجازي 100% غير أني أجريت بعض التعديلات فيه و فهمت منه ما يلي CLSID_ShellLink هو نوع من الكائنات عبارة عن رابط أولي IpersistFile هي قيمة لملف أولي (و هو الرابط نفسه) PItemIDList نوع للمتغير الذي يحمل قيم المجلد أولي لقائمة البرامج CSIDL_COMMON_PROGRAMS أو سطح المكتب CSIDL_DESKTOPDIRECTORY من بين القيم هذه مسار المجلد الأولي لقائمة البرامج أو سطح المكتب الذي يتم استخراجه من هذا المتغير بـ SHGetPathFromIDList إذن CLSID_ShellLink عبارة عن رابط يتكون من ملف (IPFile) بنطاق .lnk و مسار للملف المراد إنشاء رابط له (ISLink). إقتباس :مرفق ملف مصدري يعمل Link مباشرة في Desktop معدل. طريقة أخرى أحسنت. كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - STRELiTZIA - 20-03-2008 إقتباس :لم يسبق لي و أن أنجزت مكونا ****ا أن تقوم بإكمال الفكرة الطيبة. على عيني اخي مهدي ![]() المرفق يحتوي على المكون Component. و بالمقابل مطلوب منكم تطويره ليعمل Link في Program menu ايظـــــا ![]() تحياتي
كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - مهدي - 21-03-2008 إقتباس :و بالمقابل مطلوب منكم تطويره ليعمل Link في Program menu تمت إضافة طريقة إدراج رابط في قائمة البرامج بمجلد إسمه منتدى دلفي للعرب المكون في المرفقات كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - STRELiTZIA - 21-03-2008 ممتاز اخي مهدي
|