delphi4arab منتديات دلفي للعرب
كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - نسخة قابلة للطباعة

+- 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

جزاك الله خيرا اخي مهدي Smile
ملاحظة صغيرة لجعل الــ Code portable و تطويره ليصبح في النهاية Component
- تقسيمه الى Procedure او function مستقلة. يجعله متعدد الاتسعمالات.
- و منها جعله بسهولة Component.

تحياتي Smile


كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - لانا - 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

إقتباس :لم يسبق لي و أن أنجزت مكونا ****ا أن تقوم بإكمال الفكرة الطيبة.

على عيني اخي مهدي Smile
المرفق يحتوي على المكون Component.

و بالمقابل مطلوب منكم تطويره ليعمل Link في Program menu ايظـــــا Big Grin

تحياتي Smile


كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - مهدي - 21-03-2008

إقتباس :و بالمقابل مطلوب منكم تطويره ليعمل Link في Program menu

تمت إضافة طريقة إدراج رابط في قائمة البرامج بمجلد إسمه منتدى دلفي للعرب

المكون في المرفقات


كيف بإمكانك وضع روابط لملفات على سطح المكتب و حذفه - STRELiTZIA - 21-03-2008

ممتاز اخي مهدي Smile