الانتقال إلى المحتوى

أنشئ مثبّت NSIS عبر الإنترنت دون كتابة سكربت

ما هو NSIS، وكيف يبدو سكربت .nsi بسيط، وكيف تحصل على Setup.exe قياسي من NSIS مع معالج Modern UI والاختصارات وبرنامج إزالة التثبيت من خلال نموذج بدلاً من سكربت.

آخر تحديث 31 أكتوبر 2026 · 3 دقائق قراءة

NSIS، أي Nullsoft Scriptable Install System، هو العمود الفقري الهادئ لمثبّتات Windows منذ أكثر من عشرين عامًا. يُوزَّع به VLC و7-Zip وAudacity وعدد لا يُحصى من تطبيقات Electron. وهو مجاني، ويُنتج مثبّتات صغيرة الحجم، ويفعل بالضبط ما يقوله السكربت. لكن السكربت هو أيضًا ما يوقف كثيرين: عليك تعلّم لغة ماكرو لتحصل على معالج تريده معظم التطبيقات بالشكل نفسه على أي حال. يوضّح هذا الدليل ما يتضمنه السكربت، وكيف تحصل على المثبّت نفسه دون كتابته.

ما الذي يفعله NSIS

يقوم makensis بتجميع سكربت نصي (.nsi) إلى ملف Setup.exe مستقل بذاته. يعلن السكربت عن صفحات المعالج، والملفات المراد تثبيتها، والاختصارات ومدخلات السجل المراد إنشاؤها، وقسم إزالة تثبيت يتراجع عن كل ذلك. ومع Modern UI (MUI2.nsh) تحصل على الصفحات المألوفة: الترحيب والترخيص والمجلد والتقدم والإنهاء، مترجمة إلى عشرات اللغات.

الناتج مضغوط: غالبًا ما يتفوق ضغط LZMA الصلب (solid) على ملف zip للملفات نفسها. وتدعم المثبّتات الوضع الصامت (/S) ومجلد تثبيت مخصصًا (/D=) دون أي عمل إضافي.

كيف يبدو السكربت

يمتد سكربت بسيط وواقعي لمجلد تطبيق إلى نحو ثمانين سطرًا. الهيكل:

!include MUI2.nsh
Name "My App"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES64\My App"
RequestExecutionLevel admin

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Section "Install"
  SetOutPath "$INSTDIR"
  File /r "app\*"
  WriteUninstaller "$INSTDIR\uninstall.exe"
  CreateShortcut "$SMPROGRAMS\My App.lnk" "$INSTDIR\MyApp.exe"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "DisplayName" "My App"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "UninstallString" "$INSTDIR\uninstall.exe"
SectionEnd

Section "Uninstall"
  Delete "$INSTDIR\MyApp.exe"
  RMDir /r "$INSTDIR"
  Delete "$SMPROGRAMS\My App.lnk"
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App"
SectionEnd

السكربت الحقيقي ينمو من هناك: معلومات الإصدار في خصائص الملف، واختصار على سطح المكتب، وعروض سجل 64 بت، والتثبيت لكل مستخدم تحت $LOCALAPPDATA، ومربع حوار لاختيار اللغة، و"التشغيل بعد التثبيت"، وحجم تقديري لإعدادات Windows، وبرنامج إزالة تثبيت يحذف الملفات التي ثبّتها فقط لا المجلد بأكمله (فالمستخدمون يضعون بالفعل ملفاتهم الخاصة بجوار التطبيقات). كل واحد منها بضعة أسطر، وكل واحد منها موضع يمكن أن تُخطئ فيه في تفصيلة ما.

الحصول على المثبّت نفسه من نموذج

ExeTup هو أداة لإنشاء مثبّتات NSIS: يولّد سكربتًا مثل الذي أعلاه من إجاباتك، ويجمّعه بـ makensis في السحابة، ويعطيك ملف Setup.exe. ما تملؤه:

  • الملفات: ملف zip لمجلد التطبيق، أو ملف .exe واحد، بالإضافة إلى "ملفات أخرى" اختيارية تُثبَّت بجواره.
  • التفاصيل: الاسم والإصدار والناشر والموقع الإلكتروني ونص الترخيص.
  • الخيارات: جميع المستخدمين أو المستخدم الحالي، 64 بت أو 32 بت، اختصارات قائمة ابدأ وسطح المكتب، التشغيل بعد التثبيت، التشغيل عند بدء النظام.
  • اللغات: أي عدد من خمس عشرة لغة، مع مربع حوار اللغة الخاص بـ NSIS عند اختيار أكثر من لغة واحدة.
  • الأيقونة: ملف .ico للمثبّت والاختصارات.

النتيجة مثبّت NSIS قياسي مع Modern UI، وضغط LZMA صلب، وبرنامج إزالة تثبيت مسجَّل في إعدادات Windows، ومعلومات الإصدار في خصائص الملف، والتثبيت الصامت بـ /S. كل قيمة تكتبها تُهرَّب (escape) قبل أن تصل إلى السكربت، وهذا مهم لأن سكربتات NSIS يمكنها تنفيذ أوامر وقت التجميع.

متى تكتب السكربت بنفسك

اكتب NSIS يدويًا عندما تحتاج إلى صفحات مخصصة، أو إضافات، أو أقسام شرطية، أو تثبيت خدمات، أو التكامل مع خط CI يبني أصلًا على Windows. توثيق NSIS والأمثلة المرفقة به جيدة. أما للتطبيق الذي يحتاج إلى المعالج القياسي والاختصارات وبرنامج إزالة التثبيت، فتوليد السكربت أسرع وأقل عرضة للخطأ.

الأسئلة الشائعة

هل الناتج مثبّت NSIS حقيقي؟

نعم. يولّد ExeTup سكربت NSIS ويجمّعه باستخدام makensis الرسمي. يتصرف ملف Setup.exe مثل أي مثبّت NSIS، بما في ذلك مفتاحي /S و/D=.

هل يمكنني تنزيل سكربت .nsi المولَّد؟

يُولَّد السكربت وقت البناء من إعداداتك. ما تنزّله هو المثبّت نفسه؛ وخياراته ظاهرة في المعاينة قبل البناء.

هل يعمل NSIS على Mac أو Linux؟

يجمّع makensis على المنصات الثلاث، ويوفره Homebrew وapt كحزمة. لكن يظل عليك كتابة السكربت بنفسك. أما ExeTup فلا يحتاج إلا إلى متصفح؛ انظر إنشاء مثبّت Windows على جهاز Mac.

ما اللغات المدعومة؟

الإنجليزية، والصينية المبسطة، والهندية، والإسبانية، والفرنسية، والعربية، والبرتغالية البرازيلية، والروسية، والإندونيسية، والألمانية، واليابانية، والتركية، والكورية، والفيتنامية، والإيطالية، باستخدام ترجمات NSIS نفسها.

أدلة ذات صلة