سلسلة شروحات innoSetup الدرس الحادي عشر : صناعة ملف التثبيت عن طريق الأكواد قسم [icons]

ناصر بعزيز

Administrator
طاقم الإدارة
إنضم
7 أغسطس 2018
المشاركات
646
مستوى التفاعل
666
النقاط
93
الإقامة
الجزائر
الموقع الالكتروني
mx-blind.com
الجنس
ذكر
نظام التشغيل
Windows10
قارئ الشاشة المستخدم
jaws
بسم الله الرحمن الرحيم, والصلاة والسلام على أشرف الخلق والمرسلين
أما بعد فأيها الأحباب أهلا وسهلا بكم في الدرس الحادي عشر من دورة تعلم برنامج InnoSetup
في درسنا اليوم سنتعرف على قسم جديد ألا وهو قسم
[icons]
حيث نستخدم هذا القسم
لإنشاء الإختصارات في الأماكن المختلفة
كمثلا إختصار سطح المكتب
وإختصارات قائمة إبدأ
وغير ذالك من الإختصارات.
هيا بنا الآن لنرى أمثلة عليها كالعادة قبل أن نبدأ في التفصيل

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MYPROG.EXE"; WorkingDir: "{app}"
Name: "{group}\Uninstall My Program"; Filename: "{uninstallexe}"
عزيزي بعض التفصيل البسيط قبل الذهاب إلى الشرح
بالنسبة لكلمة
{group}
فهي تمثل مجلد البرنامج في كافة البرامج داخل قائمة إبدأ
{uninstallexe}
تمثل ملف إزالة التثبيت الذي يقوم المعالج بإنشائه
{app}
مسار مجلد البرنامج
وسأخصص مقال كامل في نهاية الدورة أشرح لكم هذه الثوابت إن شاء الله
المهم الآن بعد أن فهمنا الغموض
ننتقل إلى الشرح والتفصيل
قبل ذالك صلُّو على رسول الله

أول شيء عندنا في هذا القسم هو
Name
مطلوب
حيث هذا العنصر نكتب فيه المسار الكامل للإختصار الذي نريد إنشائه
وبإمكاننا استخدام الثوابت
مثلا
Name: "{group}\Uninstall My Program"
أو
Name: "d:\Uninstall My Program"
حيث هنا يقوم بانشاء اختصار اسمه Uninstall My Program
وهذه أمثلة أخرى
Name: "{group}\My Program"
Name: "{group}\Subfolder\My Program"
Name: "{commondesktop}\My Program"
Name: "{commonprograms}\My Program"
Name: "{commonstartup}\My Program"

ننتقل الآن إلى العنصر التالي

Filename
مطلوب
حيث هذا لتحديد مسار الملف الذي نريد عمل اختصار له
طبعا بالإمكان أن يكن أي ملف
سواءا برنامج أو ملف نصي أو حتى رابط أنترنت
مثال

أمثلة

Name: "{group}\My Program"; Filename: "{app}\MYPROG.EXE"
Name: "{group}\My Program"; Filename: "{uninstallexe}"
Name: "{group}\My Program"; Filename: "{app}\FolderName"
Name: "{group}\My web site"; Filename: "http://www.example.com/"

حيث هنا قمت بوضع عدة أمثلة لعدة حالات

الآن ننتقل إلى
Parameters
حيث هذا العنصر خياري يستخدم في حال كان الملف أو البرنامج الذي تريد تشغيله يتطلب أوامر سطرية
كمثلا برنامج NVDA
يحتاج للأمر -r لإغلاق النسخة السابقة وفتح نسخة جديدة.

مثال
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"
حيث يقوم هذا بإنشاء إختصار لبرنامج NVDA ويضعه في سطح المكتب

WorkingDir
هذا الخيار لتحديد مكان العمل الذي يعطيه للبرنامج في التشغيل
حيث مثلا بإمكان أن تشغل برنامج من قرص c:
لاكن مجلد العمل يكن في d:
حيث هذا يفيد مع بعض البرامج
وهو هنا طبعا اختياري
هاك مثال
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"; WorkingDir: "{pf}\NVDA"
حيث هنا مجلد العمل سيكون نفسه مجلد NVDA

HotKey
هنا يستخدم هذا في حال أردت أن تقوم بإنشاء إختصار سريع لتشغيل الإختصار
حيث يعادل إضافة إختصار في خصائص الإختصارات الذي نعرفه جميعا

مثال
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"; WorkingDir: "{pf}\NVDA"; HotKey: "ctrl+alt+n"

الآن لننتقل إلى
Comment
وهو لكتابة وصف إلى الإختصار
حيث عند تحديده يظهر الوصف للمستخدم
مثلا
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"; WorkingDir: "{pf}\NVDA"; HotKey: "ctrl+alt+n"; Comment: "exit NVDA and run a new copy"

IconFilename
هذا لتحديد أيقونة للإختصار
ويمكن أن تكن في ملف exe أو dll
أو ملف ico
هذا المثال للتوضيح
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"; WorkingDir: "{pf}\NVDA"; HotKey: "ctrl+alt+n"; Comment: "exit NVDA and run a new copy"; IconFilename: "{pf}\NVDA\NVDA.Exe"

وهناك أيضا
IconIndex
هذا يستخدم في حال قمت بأخذ الأيقونة من ملف exe أو من dll
حيث هنا تحدد موضع الأيقونة بالرقم
مثلا
0 للأيقونة الأولى وكذا
في حال لم تقم باستخدام هذا العنصر فإن الإختصار سيحصل على أيقونة الملف الرئيسية

مثلا
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"; WorkingDir: "{pf}\NVDA"; HotKey: "ctrl+alt+n"; Comment: "exit NVDA and run a new copy"; IconFilename: "{pf}\NVDA\NVDA.Exe"; IconIndex: 0

عندنا أيضا
Flags
وهو لإضافة الخيارات الإضافية
حيث يمكن الفصل بين الخيارات بالمسافة

createonlyiffileexists
هذه مفيدة جدا
وهي تعني أن يقوم بإنشاء الإختصار في حال كان الملف الذي تريد انشاء الإختصار له موجود فقط
يعني في حال لم يكن الملف موجود فلا يقوم البرنامج بإنشاء الإختصار
foldershortcut
هذا تستخدمه في حال أردت إنشاء الإختصار لمجلد وليس لملف

preventpinning
حيث هذا يمنع تثبيت الإختصار في الويندوزات الحديثة

runmaximized
حيث باستخدام هذا يتم تشغيل نوافذ الإختصار مكبرة
runminimized
هذا عكس السابق حيث يشغلها مصغرة

uninsneveruninstall
حيث هذا يمنع حذف الإختصار في حال تم إزالة البرنامج
useapppaths
حيث هذا في حال كان عندك تطبيق ما مثبت
وتريد إنشاء إختصار له ولا تعلم مكانه بالضبط فبإمكانك كتابة إسم الملف فقط وتستخدم هذا الخيار ليأتي البرنامج بمساره تلقائيا من الرجيستري من هذا المسار
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"

ملاحظة :
لم أتطرق لخيارين هنا
لأني لم أجربهم ولم أفهم ما يقومون به أصلا لذا إكتفيت مما تأكدت منه شخصيا
هاكم مثال
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"; WorkingDir: "{pf}\NVDA"; HotKey: "ctrl+alt+n"; Comment: "exit NVDA and run a new copy"; IconFilename: "{pf}\NVDA\NVDA.Exe"; IconIndex: 0; Flags: createonlyiffileexists runminimized
طبعا هنا بإمكانك ربطه مع أي عملية tasks
أو Components
كما رأينا في الدروس السابقة
وكذالك يمكن ربطه باللغة والإصدار الأدنى والإصدار ما بعد
طبعا اليوم لن أقوم بمثال إلا على tasks لأننا نجده دائما
Name: "{commondesktop}\NVDA"; Filename: "{pf}\NVDA\NVDA.exe"; Parameters: "-r"; WorkingDir: "{pf}\NVDA"; HotKey: "ctrl+alt+n"; Comment: "exit NVDA and run a new copy"; IconFilename: "{pf}\NVDA\NVDA.Exe"; IconIndex: 0; Flags: createonlyiffileexists runminimized; tasks: "DesktopIcon"
إلى هنا عزيزي نكون قد وصلنا لنهاية درسنا اليوم
نلتقي في درس جديد إن شاء الله تعالى
من هنا إلى ذالك الوقت
لا تنسوني من خالص دعائكم ونشر الدورة حتى تعم الفائدة
كان معكم أخوكم في الله ناصر بعزيز
أستودعكم الله العظيم الذي لا تغيب ودائعه
والسلام عليكم ورحمة الله تعالى وبركاته.
 
التعديل الأخير:
شرح رائع إستفدتُ منهُ كثيرا
أسأل الله أن يجعل هذه الدورة وكل شرحاتك وكل ما تقدمهُ أخي العزيز ناصر في ميزان حسناتك يوم القيامة
زادك الله علما ونفع بك
وفي النهاية تقبل تحياتي يا عزيزي
 
شرح رائع إستفدتُ منهُ كثيرا
أسأل الله أن يجعل هذه الدورة وكل شرحاتك وكل ما تقدمهُ أخي العزيز ناصر في ميزان حسناتك يوم القيامة
زادك الله علما ونفع بك
وفي النهاية تقبل تحياتي يا عزيزي
شكرا لك أخي العزيز على مرورك
أتمنا أن تستفيدوا جميعا من هاذي الشروحات
 
عودة
أعلى