صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 18

موضوع: الگوی ساخت برنامه نصب با استفاده از nsis

  1. #1
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض الگوی ساخت برنامه نصب با استفاده از nsis

    سلام
    برنامه NSIS یا بطور کامل تر Nullsoft Scriptable Install System یک برنامه نصب بسیار قدرتمند است که همه کار
    ها را بر اساس زبان اسکریپت مخصوص خودش انجام میدهد.
    برنامه ای رایگان و open source بوده و کار کردن با آن بسیار راحت و دلنشین است.در همه ویندوز ها کار میکند و
    اکثریت زبان ها حتی فارسی را هم ساپورت مینماید.
    در اصل توسط سازندگان برنامه محبوب WinAmp ساخته شده و بسیار انعطاف پذیر است.
    ولی یک اشکال کلی دارد ، و آن این است که این برنامه صفحه گرافیکی (GUI) ندارد و کاربر بایستی اول اسکریپت
    های این برنامه را یاد گرفته و بعد دستورات را در یک فایل متنی بنویسد.
    البته برای کار با این برنامه وافعا" عالی دهها برنامه مختلف نوشته شده است.

    امروز میخواهیم یک الگو بسازیم که هر کسی حتی بدون داشتن کوچکترین اطلاعاتی از اسکریپت نویسی NSIS
    بتواند به راحتی و در یک دقیقه فایل نصب مورد علاقه اش را بسازد. البته بنده نصب نوع مخفی را مختصرا" توضیح
    خواهم داد.
    -----------------------------
    ما زمانی میخواهیم یک فایل نصب بسازیم که تعدادی فایل از قبل یرای منظور های مختلف ساخته و یا داشته
    باشیم و بخواهیم همه این ها را به یک فایل EXE تبدیل کنیم که با اجرای آن فایل ، فایل های ما در جا های
    بخصوصی از سیستم قرار بگیرند و در صورت نیاز تنظیماتی را در سیستم اعمال کرده و یا تنظیماتی از سیسنم
    را عوض کنیم. و و و...
    لذا در این آموزش ، بنده مفروضات زیر را خواهم داشت (در انتهای آموزش فایل های بکار گرفته در این تاپیک را هم
    جهت استفاده شما عزیزان آپلود خواهم نمود).
    فر ضا" ما فایل ها و پوشه های زیر را داریم و میخواهیم آن ها را به یک فایل EXE تبدیل کنیم:
    __ فایلی بنام Thank you.exe
    __ فایلی بنام USB Port Locked.exe
    __ فایلی بنام ColorCop.exe
    __ پوشه ای بنام spider که داخلش فایلی بنام spider.exe قرار دارد.
    __ پوشه ای بنام Starter که داخلش فایلی بنام Starter.exe قرار دارد.

    اما چکار میخواهیم بکنیم:
    __ همه این ها را تبدیل به یک فایل EXE بنام setup.exe بکنیم.
    __ فایل setup.exe باید آیکن مورد نظر ما را داشته باشد.
    __ با اجرای setup.exe بایستی کار های زیر انجام شود:
    1. مرحله نصب مخفی باشد و دیده نشود.
    2. پوشه ای بنام MyTool داخل پوشه Program Files درست شود.
    3. پوشه های نامبرده در بالا یعنی پوشه های spider و Starter با محتویاتشان داخل پوشه MyTool که در شماره 2
    گفتیم قرار بگیرند.
    4. داخل پوشه Windows پوشه ای بنام Needs ساخته شود و فایل ColorCop.exe داخل آن قرار بگیرد.
    5. فایل USB Port Locked.exe در داخل پوشه system32 قرار بگیرد.
    6. در دسکتاپ و استارت منو و Quick Launch شورت کات های همه فایل های ما درست شوند.
    7.در داخل پوشه MyTool درون Program Files ، یک فایل بنام uninst.exe ساخته شود که اگر آن را اجرا کنیم
    فایل های نصبی ما را از سیستم Uninstall نماید.
    8. در داخل پوشه MyTool یک لینکی وجود داشته باشد که اگر اجرایش کنیم سایت مورد نظر ما را باز کند.
    9. موقع Uninstall کردن رد پای برنامه ما را از رجستری پاک نماید.

    خوب تا اینجا فهمیدیم که چی داریم و چکار میخواهیم بکنیم.

    در فرصت بعدی بقیه داستان را عرض خواهم کرد.
    ویرایش توسط Magsoud : 03-12-2012 در ساعت 11:54 PM

    [SIGPIC][/SIGPIC]

  2. 13 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  3. #2
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض

    سلام
    دوستان کار خیلی ساده است . برای انجام این پروژه لازم است که کاربر قبلا" برنامه NSIS و پلاگ این رجستری
    مربوطه را نصب کرده باشد.NSIS و پلاگ این لازم را با حجم 1.53 مگا بایت در لینک زیر آپلود کرده ام.
    NSIS.rar
    ShiftFile - Free File Hosting and File Sharing
    تمام فایل ها و پوشه هایی که در جلسه قبل نام بردم ،بعلاوه دو عدد آیکن و یک فایل بنام MyTool.nsi را در لینک
    زیر آپلود کردم (MyTool.rar حجم 950 کیلو بایت) ، که در سطور بعد در موردشان صحبت خواهم کرد.
    MyTool.rar
    ShiftFile - Free File Hosting and File Sharing
    با فرض اینکه شما فایل فشرده بالا را دانلود کرده و از فشردگی درآورده اید الان باید پوشه ای با نام MyTool در
    جلوی شما باشدکه حاوی تمام فایل های لازم این مبحث میباشد.

    تمام کد هاییکه برای ساخت این پروژه لازم است را در فایل MyTool.nsi موجود در داخل پوشه MyTool نوشته ام.
    یعنی اگر در این زمان برنامه NSIS و پلاگ این مربوطه را در سیستم نصب کرده باشید فقط کافی است که روی
    فایل MyTool.nsi کلیک راست کرده و روی گزینه Compile NSIS script کلیک کنید.
    در عرض چند ثانیه فایلی بنام setup.exe داخل پوشه MyTool ساخته خواهد شد که این فایل به تنهایی تمام
    فایل ها را دارد و اگر شما فقط این فایل را برده و در هر سیستمی اجرا کنید نصب شده و تمام کار هایی را که در
    جلسه قبل گفتم انجام خواهد داد.

    ولی برای اینکه شما بتوانید این کار را با برنامه های مورد نظرتان انجام دهید ، و یا چیز هایی به این پروژه اضافه
    و یا از آن کم کنید، لازم است که به شرح کد های داخل فایل MyTool.nsi که در زیر خواهم گفت توجه نمایید.

    با مطالعه مختصر سطور زیر ،برای کار های بعدی ، فقط نیاز خواهید داشت که در این کد نام ها را عوض کنید و یا
    سطور مشابهی را اضافه و یا کم نمایید.

    اما شرح کد های فایل MyTool.nsi
    --------------------------------------
    فایل MyTool.nsi یک اسکریپت متنی است یعنی میتوانید این فایل را با notepad باز کرده و تمام کد هایش را ببینید.
    البته من پیشنهاد میکنم که جهت دیدن هر فایلی که متنی بوده ولی حاوی کد های اسکریپت و یا کد های زبان
    های برنامه نویسی است ، بجای notepad از برنامه رایگان وبسیار عالی بنام ++notepad استفاده نمایید.

    بهر حال اگر فایل مورد نظر را با برنامه ++notepad باز کنید خواهید دید که این فایل از تعداد 111 سطر کد تشکیل
    شده است.
    دقت کنید که برنامه NSIS این 111 سطر را بترتیب از سطر 1 شروع کرده و یک به یک اجرا خواهد کرد تا به آخر برسد.

    __ قسمت اول کد را در زیر مشاهده میکنید:
    کد:
    ; Made by M_Shirin zaban.
    
    ; HM NIS Edit Wizard helper defines
    !define PRODUCT_NAME "MyTool"
    !define PRODUCT_VERSION "1.0"
    !define PRODUCT_PUBLISHER "p30ask group"
    !define PRODUCT_WEB_SITE "http://forum.p30ask.com/"
    !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Thank you.exe"
    !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
    !define PRODUCT_UNINST_ROOT_KEY "HKLM"
    سطر اول کد های بالا فقط یک شرح یا توضیحات است که بنده در این مثال نوشته ام که اسکریپت توسط شیرین زبان
    نوشته شده. شما میتوانید هر چه دوست داشتید در این سطر بنویسید و یا حتی این سطر را کاملا" حذف کنید.

    سطر 2 خالی بوده و سطر 3 هم فقط توضیحات است. در کل هر سطری که با علامت ; شروع شده باشد، توضیح بوده
    و شما میتوانید تمام سطوری را که اولشان علامت ; وجو دارد را حذف کنید بدون اینکه تاثیری در کار نهایی داشته باشد.
    سطور 4 تا 7 مشخصات فایل نهایی ساخته شده شماست که بشرح زیر است:
    __ در سطر 4 مابین علایم " " باید نام مورد نظرتان را برای برنامه خود بنویسید. که من در این مثال از نام MyTool استفاده
    کرده ام. وجود این سطر ضروری است ، شما میتوانید در این قسمت هر نام دلخواه خود را بنویسید ولی نمیتوانید این
    سطر را حذف کنید.
    __ سطو ر 5و 6 و 7 کد بالا ورژن ، سازنده و سایت سازنده را مشخص میکند. میتوانید این مشخصه ها را بدلخواه عوض
    کرده و یا میتوانید این سه سطر را حذف نمایید.
    __ سطور 8 و 9 و 10 تنظیمات برنامه ما را در رجستری مشخص میکنند. میشود این سه سطر را هم حذف کرد و مشکلی
    پیش نخواهد آمد ولی برای استاندارد بودن برنامه ، بهتر است استفاده کنیم.توضیحا" عرض کنم که وقتی برنامه ای
    مثلا" WinAmp را در سیستممان نصب میکنیم ، این برنامه در یک جایی از رجستری سیستم (مثل سطر 8 بالا )
    جایی در رجستری ساخته و در آن جا نام فایل اجرایی خودش را می نویسد. در این مثال چون یک مثال واقعی نبوده و ما
    فایل اجرایی اصلی نداریم لذا بنده در این قسمت نام Thank you.exe را نوشته ام. البته عرض کردم که میتوانید این
    سطور را حذف کنید.
    در صورتیکه از سطر 8 استفاده میکنید وجود سطور 9 و 10 لازم است که برای پاک کردن رد پای برنامه ما در رجستری در
    زمان Uninstall کردن استفاده میشوند و نیازی نیست که در این دو سطر تغییری بدهید.

    قسمت بعدی کد های مورد بحث بصورت زیر است:
    کد:
    Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
    OutFile "setup.exe"
    InstallDir "$PROGRAMFILES\MyTool"
    Icon "Install.ico"
    UninstallIcon "UnInstall.ico"
    SilentInstall silent
    SilentUninstall silent
    InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
    با سطر 1 از کد های بالا هیچوقت کاری ندارید
    در سطر 2 بایستی مابین علایم " " نامی برای فایل نصب نهایی که ساخته خواهد شد بنویسید که بنده در این مثال
    از نام setup.exe استفاده کرده ام. ولی شما میتوانید هر نام دلخواه خود را بنویسید.
    در سطر 3 باید دایرکتوری اصلی برای نصب برنامه خود را مشخص کنیم. برنامه بصورت پیشفرض همه برنامه ها را داخل
    پوشه Program Files میریزد. و در اینجا فقط لازم است که ما نام پوشه ای را که میخواهیم برنامه ما در آن پوشه ریخته
    شود را مشخص کنیم که همانطور که می بینید ،بنده نام MyTool را استفاده کرده ام.
    این بدان معنی است که برنامه نصب باید پوشه ای بنام MyTool در داخل Program Files درست کرده و فایل های بنده
    را داخل آن قرار دهد.

    در سطر 4 به برنامه میگوییم که از کدام آیکن برای فایل نصبی که میسازد استفاده کند که در این مثال نام فایل
    Install.ico را نوشته ام. از طرف دیگر برنامه خودش برای زمانیکه بخواهیم برنامه را UnInstall کنیم یک فایل UnInstall
    درست خواهد کرد که ما در سطر 5 به برنامه میگوییم که از آیکن UnInstall.ico برای آن استفاده کند.
    توضیح اینکه آیکن های مورد استفاده برای نصب و عزل باید مشخصات یکسانی داشته باشند و نیز هر دو باید در
    دایرکتوری ای باشند که فایل MyTool.nsi قرار دارد.

    با سه سطر 6 و7 و 8 بالا کاری نداریم که نوع نصب و عزل برنامه را مشخص میکنند.

    تا اینجای کار کد های اولیه لازم (مشخصات اولیه برنامه) را نوشته ایم. در مرحله بعدی باید کد های کار هایی را
    که برنامه باید انجام دهد را بنویسیم

    که سعی میکنم در فرصت بعدی شرح دهم.
    ویرایش توسط Magsoud : 03-13-2012 در ساعت 04:58 PM

    [SIGPIC][/SIGPIC]

  4. 11 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  5. #3
    مدیر بخش اموزشی
    !Busy
    تاریخ عضویت
    Dec 2011
    محل سکونت
    . : : I R A N : : .
    نوشته ها
    1,330
    تشکر تشکر کرده 
    4,575
    تشکر تشکر شده 
    6,033
    تشکر شده در
    1,280 پست
    حالت من : Khoshhal
    قدرت امتیاز دهی
    1143
    Array

    پیش فرض

    سلام
    جناب شیرین زبان مزیت استفاده از این برنامه نسبت بقیه چیه؟
    مثلا من یه برنامه 1.6 مگی با نام Smart Install Maker میشناسم که تو یه محیط گرافیکی میشه به راحتی و بدون دانش خاصی Installer ساخت باهاش (تو پست 17 اینجا یه آموزش نوشتم براش) چرا nsis؟ هدف آموزش هستش یا برتری خاصی داره؟
    کسی رو برای دوست داشتن انتخاب کن که قلب بزرگی داشته باشه!
    تا مجبور نشی به خاطر اينکه تو قلبش وارد بشی خودت را کوچک کنی!


    موفق كسی است كه با آجرهايی كه به طرفش پرتاب می شود، يک بنای محكم بسازد!
    اشکی که برای شکست می ریزیم، عرقی است که برای تلاش نریختیم!



  6. 10 کاربر مقابل از borhan_3010 عزیز به خاطر این پست مفید تشکر کرده اند.


  7. #4
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض

    نقل قول نوشته اصلی توسط borhan_3010 نمایش پست ها
    سلام
    جناب شیرین زبان مزیت استفاده از این برنامه نسبت بقیه چیه؟
    مثلا من یه برنامه 1.6 مگی با نام Smart Install Maker میشناسم که تو یه محیط گرافیکی میشه به راحتی و بدون دانش خاصی Installer ساخت باهاش (تو پست 17 اینجا یه آموزش نوشتم براش) چرا nsis؟ هدف آموزش هستش یا برتری خاصی داره؟
    سلام
    برهان جان، این برنامه خیلی قوی است و آنقدر ارزش دارد که توسط شرکت های بزرگ و معتبر دنیا استفاده میشود
    یکی از حسن هایش حداقل تا الان این است که نمیتوانی کد های این برنامه (دستوراتیکه انجام میدهد )را شناسایی
    کنی ودر بیاوری.
    حجم فایل نهایی ساخته شده با این برنامه خیلی کم است. با شناخت کد هایش براحتی میتوان تغییراتی را در سیستم
    انجام دادکه هیچ کسی نتواند متوجه شود.
    من فکر میکنم اگر ، علاقه استفاده کنندگان این برنامه بهمین صورت جلو برود، برنامه تکمیل تر شده و ده سال بعد یکه تاز
    اینستالر ها خواهد شد.

    از طرف دیگر ، فردی مثل شما باید با این برنامه و دیگر برنامه های مشابه کار کرده و آشنا باشد.(حداقل مثل بنده که حدود 30
    درصد این برنامه را میدانم).

    [SIGPIC][/SIGPIC]

  8. 11 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  9. #5
    مدیر بخش اموزشی
    تاریخ عضویت
    Apr 2011
    نوشته ها
    294
    تشکر تشکر کرده 
    2,174
    تشکر تشکر شده 
    2,141
    تشکر شده در
    294 پست
    حالت من : Ghafelgir
    قدرت امتیاز دهی
    288
    Array

    پیش فرض

    درود
    پس این نرم افزار تنها نزد من محبوب نیست!! من این نرم افزار را چند سال پیش به طور اتفاقی در سایت تبیان پیدا کردم و از ان موقع تابحال برایم کار می کند!!
    به نظرم همانطور که در بالا به ان اشاره شد این نرم افزار در نوع خود می تواند یک اسکریپت NSIS یاشد.
    چرا که این نرم افزار حتی قابلیت هایی مانند انجام دستورات پس از خروج نرم افزار که در اسکرپیت NSIS از استفاده می کنیم را نیز داراست.
    در قسمت Commands میتوانید دستورات خود را از طریق یک فایل بدهید و تیک Wait Until Application Finishes را بزنید وووو
    البته یک بخش جالبتر ان بخش فایل های INI است که اگر کار ان را بلد باشید می توانید کارهای زیادی انجام بدهید.
    متاسفانه برای این نوع فایل ها مرجع کاملی مثل دیگر فایل ها مثلا Batch وجود ندارد


    اگه برای بقیه لاتی برای ما شکلات هم نیستی
    1725128855

    زندگی شاید آن لبخندی ست، که دریغش کردیم
    زندگی زمزمه پاک حیات ست، میان دو سکوت
    زندگی، خاطره آمدن و رفتن ماست
    لحظه آمدن و رفتن ما، تنهایی ست
    من دلم می خواهد
    قدر این خاطره را دریابیم

    سهراب سپهری


     
    من چه سبزم امروز
    و چه اندازه تنم هوشیار است
    نكند اندوهی ‚ سر رسد از پس كوه

    چه كسی پشت درختان است ؟
    هیچ می چرد گاوی در كرد
    ظهر تابستان است
    سایه ها می دانند كه چه تابستانی است
    سایه هایی بی لك
    گوشه ای روشن و پاك
    كودكان احساس! جای بازی اینجاست

    زندگی خالی نیست
    مهربانی هست سیب هست ایمان هست
    آری تا شقایق هست زندگی باید كرد

    در دل من چیزی است مثل یك بیشه نور مثل خواب دم صبح
    و چنان بی تابم كه دلم می خواهد
    بدوم تا ته دشت بروم تا سر كوه
    دورها آوایی است كه مرا می خواند



  10. 11 کاربر مقابل از n1ma عزیز به خاطر این پست مفید تشکر کرده اند.


  11. #6
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض

    سلام
    درست گفتی نیما جان
    در مورد استفاده بصورت ini ، من که نتوانستم سر دربیاورم البته یک برنامه پرتابل را که با روش ini
    ساخته شده دارم ولی هنوز فرصت مطالعه اش پیدا نشده.و در ضمن از این برنامه هم چون اسکریپت
    کد را نداریم هم چندان چیزی نمیشود فهمید.

    [SIGPIC][/SIGPIC]

  12. 9 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  13. #7
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض

    سلام
    دوستان ،تا الان ما فقط مشخصات عمومی برنامه خود را به NSIS توضیح دادیم.حال باید کار های زیر را انجام دهیم:
    1.بهش بگوییم که الان تک تک فایل های ما اسمشان چیست و در حال حاضر کجا قرار دارند .
    2. بگوییم که این فایل ها که معرفی کردیم را موقع نصب در کجا های سیستم کاربر استفاده کننده باید قرار دهد.
    3. بگوییم در حین نصب یا بعد از نصب چه تفییراتی را در سیستم کاربر اجرا کند.
    4.بگوییم برای فایل های برنامه ما شورت کات هایی در استارت منو و جا های دیگر درست کند.
    5. و هر نیاز دیگری که داریم.

    عزیزان من ، توجه داشته باشید که همانطوریکه قبلا" هم عرض کردم NSIS کد های نوشته شده توسط ما را سطر
    به سطر خوانده و بترتیب اجرا میکند. یعنی اول دستور سطر 1 را اجرا میکند و بعد سطر 2 و الی آخر.
    لذا ما باید ترتیب دستورات خود را بر اساس نیاز هایمان قرار دهیم. اما نکته دیگری که در کد اسکریپت NSIS وجود دارد
    این است که قسمت اول کد (همانطور که در جلسات قبلی دیدیم) ، معرفی مشخصات برنامه است.ولی قسمت دوم
    کد دادن دستورات اجرایی است.
    NSIS دستوراتی را اجرا میکند که این دستورات ما بین دو عبارت Section و SectionEnd نوشته شده باشند.و هر
    مطلبی را که مابین این دو عبارت نبیند، فکر میکند که این یک مشخصه است.
    لذا ما باید تمام خواسته هایمان را مابین این دو عبارت بنویسیم.
    پس برنامه NSIS در ساده ترین شرایط ،حد اقل دارای یک Section خواهد بود. ولی معمولا" دارای Section های متعددی
    خواهد بود که هر Section یک کار دیگری را انجام میدهند ( در مثال ما هم دارای چندین Section هستیم که در سطور
    زیر توضیح خواهم داد.)
    توجه داشته باشید که هر Section نامی دارد و نمیشود دو تا Section هم نام در یک کد اسکریپت داشته باشیم. و با
    مطالعه سطور زیر خواهید دید که کد های داخل Section های مختلف هم ساده و راحت هستند.
    ------------------------------------
    Section اول در مثال ما
    ------------------------
    به کد زیر توجه کنید:
    کد:
    Section "sec_01" 
      SetOutPath "$INSTDIR\spider"
      SetOverwrite on
      File "spider\spider.exe"
      CreateDirectory "$SMPROGRAMS\Tools"
      CreateShortCut "$SMPROGRAMS\Tools\spider.lnk" "$INSTDIR\spider\spider.exe"
      CreateShortCut "$DESKTOP\spider.lnk" "$INSTDIR\spider\spider.exe"
      SetOutPath "$INSTDIR\Starter"
      File "Starter\Starter.exe"
      CreateShortCut "$SMPROGRAMS\Tools\Starter.lnk" "$INSTDIR\Starter\Starter.exe"
      CreateShortCut "$SMPROGRAMS\Tools\Uninstall.lnk" "$INSTDIR\uninst.exe"  
      SetOutPath "$INSTDIR"
      SetOverwrite try
      File "Thank you.exe"
      CreateShortCut "$STARTMENU\Thank you.lnk" "$INSTDIR\Thank you.exe"
    SectionEnd
    می بینید که این کد با کلمه Section شروع و با کلمه SectionEnd تمام شده است. کد های نوشته شده مابین این
    دو عبارت کار هایی است که ما میخواهیم . گفتیم که برنامه کد ها را بترتیب اجرا خواهد کرد ، پس ما در این Section
    دستوراتی را قرار میدهیم که اول نصب باید انجام شوند.

    در سطر 1 از کد بالا نام Section ما بین علایم " " مشخص گردیده است که در این مثال sec_01 میباشد.

    در جلسه قبلی به برنامه گفتیم که فایل های اصلی ما را باید داخل پوشه ای بنام MyTool داخل پوشه Program Files
    قرار بدهد. برنامه این آدرس را با کد INSTDIR$ می شناسد. یعنی کد INSTDIR$ را معادل Program Files\MyTool
    میداند.
    لذا وقتی در سطر 2 می نویسیم INSTDIR\spider می فهمد که باید پوشه Program Files\MyTool\spider را بسازد.

    در سطر 4 فایلی را که برنامه باید آن را داخل پوشه ساخته شده بگذارد (در این مثال spider.exe ) را مشخص میکنیم.
    توجه داشته باشید که در این جا آدرس محلی را می نویسیم که فایل مورد نظر ، الان در کامپیوتر ما وجود دارد.
    فراموش نکنید که برنامه آدرس داخل کامپیوتر ما را از جایی شروع میکند که فایل MyTool.nsi قرار دارد.

    حال که فایل spider.exe را در محلش قرار دادیم ، تصمیم میگیریم که پوشه ای در منوی استارت درست کرده و داخل
    آن شورت کاتی را برای این فایل بگذاریم.
    در سطر 5 به برنامه میگوییم پوشه ای بنام Tools در منوی استارت قسمت Programs با نام Tools ساخته و در سطر
    6 به برنامه میگوییم نام این شورت کات spider.lnk باشد.

    بقیه سطور کد بالا اعمال مشابهی را انجام میدهیم که واضح است. اگر نمیخواهید شورت کات داشته باشید میتوانید
    قسمت های مربوطه را از کد حذف کنید.

    کار هاییکه در قسمت های بعدی کد انجام میشود هم به همین روشی که توضیح داده شد میباشد.

    نمونه ساخته شده این مثال با حجم 1.11 مگا بایت در لینک زیر آپلود شده است.که میتوانید دانلود و امتحان نمایید.
    ShiftFile - Free File Hosting and File Sharing

    موفق باشید.
    ویرایش توسط Magsoud : 03-15-2012 در ساعت 03:07 PM

    [SIGPIC][/SIGPIC]

  14. 8 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  15. #8
    مدیر بخش اموزشی
    !Busy
    تاریخ عضویت
    Dec 2011
    محل سکونت
    . : : I R A N : : .
    نوشته ها
    1,330
    تشکر تشکر کرده 
    4,575
    تشکر تشکر شده 
    6,033
    تشکر شده در
    1,280 پست
    حالت من : Khoshhal
    قدرت امتیاز دهی
    1143
    Array

    پیش فرض

    درود
    دوتا سوال کوچولو:
    درایو ویندوز تو Nsis چی میشه؟
    WINDIR$ که میشه C:\Windows
    مثلا مسیر زیر چی میشه:
    C:\ProgramData
    من نمی خوام از عبارت C استفاده کنم چون ممکنه ویندوز در درایوی غیر از C نصب شده باشه!

    سوال دیگه:
    برنامه Nsis دونسخه ANSI و Unicode تفاوت شون چیه و از کدوم یکی استفاده کنیم؟

    و یه سوال خیلی خیلی خیلی مهم!!
    بعضی از برنامه بعد از اجرا علاقه دارن که به سرورشون وصل بشن! این کار مشکلاتی رو در پی داره که مهم ترین اون احتمال به هم خوردن کرک و سریال برنامه اس!
    ولی اگه Ip سرور اش رو با فایروال دربیاریم و در فایل
    hosts قرار بدیم دیگه برنامه نمی تونه به سرورش وصل بشه! (فرض ما بر اینه که این برنامه قراره تو سیستمی اجرا بشه که فایروال نداره ...)
    با ویرایش فایل hosts در مسیر C:\Windows\System32\drivers\etc قرار داره و میشه با Notepad ویرایش کرد!
    من دستورات زیر رو براش در نظر گرفتم:
    کد:
    FileOpen $0 "$SYSDIR\drivers\etc\hosts" a
    FileSeek $0 5 END
    FileWrite $0 "$\r$\n"
    FileWrite $0 "50.28.84.142 martau.com"
    FileWrite $0 "$\r$\n"
    FileWrite $0 "50.28.84.142 www.martau.com"
    FileWrite $0 "$\r$\n"
    FileWrite $0 "127.0.0.1 martau.com"
    FileWrite $0 "$\r$\n"
    FileWrite $0 "127.0.0.1 www.martau.com"
    FileClose $0
    Sleep 100
    مشکل اینجاست که این دستورات هوشمند نیست که تشخیص بده توی اون فایل hosts فرضا خط 50.28.84.142 وجود داره یا نه؟
    با چه دستوری میشه این تشخیص رو انجام داد و برنامه هوشمند بشه؟ که مثلا اگه عبارت
    50.28.84.142 توی hosts هست دوباره کپی نکنه؟!

    البته من برای دور زدن این محدودیت یه ترفند زدم که اول یه بک آپ از فایل hosts بگیره و بعد اونو ویرایش کنه و دفعات بعد اگه فایل بک آپ بود دیگه فایل hosts رو دست نزنه!
    ولی راه حل درست اش رو می خوام پیدا کنم؟!
    کسی رو برای دوست داشتن انتخاب کن که قلب بزرگی داشته باشه!
    تا مجبور نشی به خاطر اينکه تو قلبش وارد بشی خودت را کوچک کنی!


    موفق كسی است كه با آجرهايی كه به طرفش پرتاب می شود، يک بنای محكم بسازد!
    اشکی که برای شکست می ریزیم، عرقی است که برای تلاش نریختیم!



  16. 6 کاربر مقابل از borhan_3010 عزیز به خاطر این پست مفید تشکر کرده اند.


  17. #9
    مدیر سایت
    دوستتان دارم
    تاریخ عضویت
    Jan 2012
    محل سکونت
    تهران
    نوشته ها
    2,286
    تشکر تشکر کرده 
    4,798
    تشکر تشکر شده 
    13,155
    تشکر شده در
    2,296 پست
    قدرت امتیاز دهی
    45307
    Array

    پیش فرض

    بنام دوست
    تعدادی از متغیر های این برنامه عبارتند از:
    کد:
    ========================================================================================================
    $PROGRAMFILES >   Your Program Files directory. Usually C:\Program Files.
    ========================================================================================================
    $COMMONFILES  >   The Common Files directory. Usually C:\Program Files\Common Files.
    ========================================================================================================
    $TEMP         >   Your temp directory. Usually C:\Documents and Settings\Profile Name\Local Settings\Temp.
    ========================================================================================================
    $DESKTOP      >   The current profile’s Desktop.
    ========================================================================================================
    $SYSDIR       >   The system directory, usually C:\Windows\System32.
    ========================================================================================================
    $EXEDIR       >   The directory that your installer executable is in.
    ========================================================================================================
    $WINDIR       >   The Windows directory, usually C:\Windows.
    ========================================================================================================
    $STARTMENU    >   The current profile’s Start menu directory. Used to add shortcuts to the top of the 
                      Start Menu.
    ========================================================================================================
    $SMPROGRAMS   >   The current profile’s Programs menu directory, found under their Start Menu. 
                      Used to add shortcuts.
    ========================================================================================================
    $SMSTARTUP    >   The current profile’s Startup directory, found under Start Menu>Programs. Add 
                      a shortcut here to launch programs when Windows starts.
    ========================================================================================================
    $QUICKLAUNCH  >   The current profile’s Quick Launch Bar. Used to add shortcuts.
    ========================================================================================================
    $INSTDIR      >   The install directory you’ve set.
    ========================================================================================================
    ${NSISDIR}    >   The NSIS directory. Usually used to include resources such as icons.
    ========================================================================================================
    در مورد بقیه سوالات هم بعدا" صحبت میکنیم.

    [SIGPIC][/SIGPIC]

  18. 5 کاربر مقابل از Magsoud عزیز به خاطر این پست مفید تشکر کرده اند.


  19. #10
    مدیر بخش اموزشی
    !Busy
    تاریخ عضویت
    Dec 2011
    محل سکونت
    . : : I R A N : : .
    نوشته ها
    1,330
    تشکر تشکر کرده 
    4,575
    تشکر تشکر شده 
    6,033
    تشکر شده در
    1,280 پست
    حالت من : Khoshhal
    قدرت امتیاز دهی
    1143
    Array

    پیش فرض

    درود
    اون کد ها رو توی Help نرم افزار پیدا کردم ...
    ولی برای روت درایو ویندوز \:c چیزی ندیدم؟!
    اون بالایی که گفتم مثال بود که اگه فرضا \:c رو بدونیم C:\ProgramData هم به راحتی به دست میاد!
    کسی رو برای دوست داشتن انتخاب کن که قلب بزرگی داشته باشه!
    تا مجبور نشی به خاطر اينکه تو قلبش وارد بشی خودت را کوچک کنی!


    موفق كسی است كه با آجرهايی كه به طرفش پرتاب می شود، يک بنای محكم بسازد!
    اشکی که برای شکست می ریزیم، عرقی است که برای تلاش نریختیم!



  20. 3 کاربر مقابل از borhan_3010 عزیز به خاطر این پست مفید تشکر کرده اند.


صفحه 1 از 2 12 آخرینآخرین

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

http://www.worldup.ir/