توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ساخت نرم افزارهاي پرتابل به شيوه PortableApps.com با "PortableApps.com Launcher 2.2"
eDvArDo
06-05-2013, 11:40 AM
سلام
دوستان خوبم همونطور كه ميدونيد شيوه پرتابل سازي به روش PortableApps.com روشي كامل و متداول در پرتابل سازي برنامهها هست
سايت PortableApps.com براي اين منظور برنامههاي كمكي در ساخت اينگونه پرتابلسازي ارايه داده كه PortableApps.com Launcher 2.2 يكي از اين نمونههاست.
PortableApps.comInstaller 3.05 و PortableApps.com Platform 12.0 Beta 1 نيز خدمات ديگري در همين راستا ارايه ميكنند.
اما اينجا سوالم در مورد مراحل گام به گام ساخت برنامه پرتابل با PortableApps.com Launcher 2.2 كه انجام دادم ولي كامل اجرا نشد!
حالا از علما سوال دارم كه چطوري ميتونيم از طريق اين روش يك برنامهاي كه احتياج به رجيست داره (در رجيستري تغييراتي اتفاق ميافته) پرتابل سازي كنيم؟
كامل و گام به گام! به سايت ديگه ارجاع ندين چون ميدونم!
سپاس
Magsoud
06-05-2013, 01:57 PM
.......... در مورد مراحل گام به گام ساخت برنامه پرتابل با PortableApps.com Launcher 2.2 كه انجام دادم ولي كامل اجرا نشد........
درود
eDvArDo (http://www.ariadl.ir/member.php?u=134158) عزیز ، قبلا" در این مورد چه در سایت های خارجی و چه در سایت های فارسی توضیخ داده ام.
یکی دو روز فرصت بده ، در اینجا هم روش کار را با مثال عملی و الگوی کار ، مجددا"شرح می دهم.
فعلا" سعی کن آموزش های بنده را که چند سال قبل نوشته ام در لینک های زیر مطالعه کنی
http://reboot.pro/topic/7460-portableapps-make-portable-using-nsis-more-detailes-on-portable-apps/
http://reboot.pro/topic/5398-portableapps-how-to-make-portable-programs/
لینک اول در مورد سوال شما و دومی عمومی است
سلام بر شما
یادم میاد آقا برهان تو انجمن های پیشین در این باره آموزش دادن و بحث شده.
eDvArDo
06-05-2013, 07:47 PM
سلام
1- استفاده از Total Uninstall اجباريست؟ آيا از راههاي ديگر براي دريافت تغييرات رجيستري و يا ... وجود دارد؟
2- آيا اين امكان وجود دارد كه ساخت پرتابلِ يك برنامه به اين روش كاملاً خودكار انجام شود؟ (چيزي شبيه پرتابل سازي با نرمافزارهاي Spoon و VMWare ThinApp )
3- نقش "لانچرساز" سايت PortableApps.com فقط ايجاد فايل "راهانداز" برنامه هست؟ ساير كارا بايد بصورت دستي انجام شود؟
سپاس
Magsoud
06-05-2013, 08:45 PM
درود
استفاده از برنامه Total uninstall و برنامه های دیگری که بهمین منظور استفاده میشوند ، اکثر مواقع اجباری
است چون ما باید بطریقی کلیه تغییرات حاصله را بدانیم.
پیشنهاد میکنم که برنامه از نظر من بی نظیر Total uninstall را حتما" استفاده کنی.
در کل شرکت PortableApps.com برنامه هایش را براساس برنامه NSIS انجام میدهد.(البته سه چهار شرکت
دیگر هم برنامه های پرتابل می سازند که آن ها هم از NSIS استفاده میکنند).
دوست عجول من چند روز صبر کن تا من پیرمرد فرصتی بدست بیاورم و روش ساده و عملی را شرح دهم.
Magsoud
06-06-2013, 04:10 PM
با توجه به گسترش روز افزون برنامه هاي مخرب مثل ويروس و تروجان و غيره ، بنظر ميرسد كه بايستي يك تدبير
اساسي صورت بگيرد كه كاربران با كمترين امكان آلودگي روبرو بشوند.
در اين رابطه ، مسئولان مربوطه بين المللي اقداماتي را شروع و در همين راستا گروه هاي تحقيق مختلفي بوجود
آمد كه راههاي مقابله را مورد بررسي قرار بدهند.
اعضاي اين گروههاي تخقيق منحصر به افراد بخصوص و يا كشور بخصوص نبودند. در انتخاب اعضا محدويت دين و
رنگ پوست و كشور و غيره دخيل نبوده و تنها علاقه و توانائي افراد ملاك كار بود.
چند سال قبل ، در همين رابطه ، از بنده نيز دعوت شد كه با يكي از اين گروههاي تحقيقي در رابطه با ويروس ها
همكاري نمايم.
مدت چند ماهي همكاري ها ادامه داشت و هر كدام تحقيقات و يا آزمايشاتي که در رابطه با مقابله با ويروس ها و
برنامه هاي مخرب انجام ميداديم و نتيجه را به همديگر خبر ميداديم.
تا اينكه بنا به درخواست تعدادي از كاربران هموطن ، تصميم گرفتم كه حتي الامكان در سايت هاي ايراني فعاليت
كنم و تجربياتم را به كاربران هموطن ارايه كنم.( متاسفانه برخلاف سايت هاي خارجي كه همواره به بنده
ارج نهاده و با قدرداني هاي مكررشان ترغيبم ميكردند كه بيشتر همكاري كنم .ورود به سايت هاي ايراني
تا به امروز بيشتر برايم غصه و دلشكستگي به ارمغان آورده ........بگذريم).
نهايت اينكه بعلت هجرت به سايت هاي وطني و پاره اي مشكلات ديگر ، شخصا" همكاري خود را با اين گروه
تخقيق قطع كردم.
منظورم از اين مقدمه نسبتا" طولاني اين بود در آن زمان آخرين نتايج بدست آمده اين بود كه بهترين راه براي
به حداقل رساندن آلودگي به انواع برنامه هاي مخرب اين است كه كاربر كارش را در يك محيط مجازي حفاظت
شده انجام دهد.
شايد بگوئيد اين مسئله چه ربطي به برنامه هاي پرتابل دارد؟
ولي دارد! چون برنامه هاي پرتابل اگر درست طراحي بشوند ، موقع اجرا در يك موقعيت موقتي كار كرده و
موقع خاموش شدن ، تمام تغييرات موقت داده شده در سيستم كاربر به حالت قبلي برخواهد گشت.
بنابر اين استفاده از برنامه هاي پرتابل استاندارد نقش زيادي در پائين آوردن احتمال خرابي و آلوده شدن
سيستم دارد. توجه داشته باشيد كه بعضي از برنامه هاي پرتابل ميتوانند خود ويروس باشند. لذا سعي
كنيد حتي الامكان خودتان برنامه هاي پرتابل مورد نيازتان را درست كنيد.
در ادامه بحث روش ساخت برنامه هاي پرتابل با استفاده از NSIS را توضيح خواهم داد كه توسط شركت
هاي مختلفي از جمله PortableApps.com استفاده ميشود.كه ما هم روش بكار گرفته شده با اين شركت
را شرح خواهيم داد.
تا بعد.
eDvArDo
06-06-2013, 04:20 PM
سلام
استاد جان، سلامت باشيد. خدا شمارو براي ما و خانواده محترمتان حفظ كند.
بشدت مشتاق آموزش روان - زيبا و البته كارا و كمياب شما هستيم.
فقط يك پيشنهاد دارم: اينكه همه دوستان و علاقمندان، مثالي عملي (مثل همون تاپيك سابق ساخت نرمافزارهاي كوچك و برنامه نويسي ++c) داشته و گزارش نمايند.
سپاس استاد
Magsoud
06-06-2013, 09:35 PM
درود
قبل از اينكه مبحث اصلي را شروع كنم لازم ميدانم كه چند نكته ضروري را عرض كنم:
دوستان،هر نرم افزاری که در کامپیوترمان نصب میکنیم ، تغییراتی در سیستم ما ایجاد میکند.ولی نوع
تغییرات بسته به نوع نرم افزار فرق میکند و دانستن این تغییرات برای ساختن برنامه های پرتابل، بالاترین
اهمیت را دارد.
نرم افزار ها موقع نصب چند نوع مختلف عمل ميكنند:
یک سری از نرم افزار ها موقع نصب فقط تعدادي پوشه و فايل به سيستم ما اضافه ميكنندو دیگر هیچ تغییر
مهمی در رجستری و جا های دیگر انجام نمیدهند.اینگونه نرم افزار ها را که معمولا" نرم افزار های رایگان
هستند، به راحتی میتوان پرتابل کرد.
در مقابل برنامه هایی هستند که نه تنها فايل ها و پوشه هایی در قسمت های مختلف سیستم درست
ميكنند بلكه تنظیمات متفاوتی هم به رجستری سیستم اضافه میکنند که این تنظیمات لازمه کار آن ها
میباشد.
دسته سوم نرم افزار هائي هستند كه نه تنها اعمال بالا را انجام میدهند بلکه تغییرات دیگری هم در سیستم
بوجود می آورند. مثلا" بعضی از فایل های سیستم را دیلیت کرده و فایل های خود را بجای آن ها قرار میدهند.
يا بعضی از تنظیمات رجستری را دیلیت و يا عوض مینمایند.و تعييرات ديگر.
آخرين دسته نرم افزار ها كه اكثريت نرم افزار هاي تجاري را تشكيل ميدهند و ما بيشتر با اين گروه سر و كار
داريم ، آن هائي هستند كه ضمن انجام تمام كار هاي بالا ، تغييرات ويژه و مخفي اي در سيستم ايجاد ميكنند
كه خيلي از مواقع پيدا كردن اين تغييرات زمانبر بوده و يا حتي گاهي غير ممكن ميشود.
براي مثال براي اجراي برنامه اي لازم است كه ما آن را با دادن كد و سريال ، اكتيو كنيم. وقتي ما كد يا سريال
يك برنامه را براي اكتيو كردنش وارد ميكنيم، برنامه آن را از ما گرفته و بصورت ويژه اي از ديد ما مخفي ميكند.
بعد از اين هر وقت اين برنامه را اجرا ميكنيم ، برنامه اول به محليكه كد را مخفي كرده مراجعه ميكند و اگر كد
موجود بود ، كامل اجرا شده و گرنه دوباره از ما خواهد خواست كه كد را وارد كنيم.
بعضي از برنامه ها كد وارد شده را عينا" در رجستري ذخيره ميكنند.
بعضي ديگر كد گرفته شده را بصورت بخصوصي تغيير داده و كد تغيير يافته را در رجستري ذخيره ميكنند.
بعضي برنامه ها كد گرفته شده را در يك فايل با نام ويژه اي ذخيره كرده و اين فايل را در داخل پوشه هاي
خود برنامه قرار ميدهند.براي مثال ورژن هاي فعلي برنامه WinRAR کد گرفته شده را با نام rarreg.key
در داخل يكي از پوشه هاي خودش ذخيره و نگهداري ميكند.
يافتن محل و فايل ذخيره شده در سه مورد بالا تقريبا" راحت است.
مشكل آن جا پيش مي آيد كه بعضي برنامه ها كد گرفته شده را نه در رجستري ذخيره ميكنند و نه بصورت
يك فايل با نام ويژه داخل پوشه هاي خود قرار ميدهند.
براي مثال عين كدي را كه از ما ميگيرند بصورت يك فايل در جائي از سيستم مثلا" پوشه System32 قرار داده
و براي اينكه كاربر را گمراه كنند به اين فايل متني نامي شبيه نام هاي سيستمي ويندور و پسوندي مثل
DLL ، OCX و غيره مي نهند.
بهر جهت كسي كه ميخواهد برنامه پرتابل بسازد ، اجبارا" بايستي بتواند اين اطلاعات را پيدا نمايد.
بنده در اين آموزش فرض را بر اين قرار ميدهم كه كاربر ميتواند تمام تغييرات موجود را شناسائي كند. چون
اگر بخواهم اين مسائل را هم توضيح دهم زمان بسيار زيادي صرف شده و آموزش براي خيلي ها خسته
كننده خواهد شد. و در كل اصلا" اين امور مربوط به عنوان اين تاپيك هم نيستند.
اما شروع بحث اصلي:
---------------------------
ما ميخواهيم يك Pack (مجموعه نرم افزاري) درست كنيم كه داراي چندين برنامه پرتابل بوده و داراي فايل
مخصوصي هست كه با اجراي آن منوئي ظاهر ميشود كه نام برنامه هاي پرتابل موجود در اين بسته را
نشان ميدهد و ما روي هر اسمي كليك كنيم ، برنامه مربوطه اجرا ميشود.
براي اينكه بحث زياد طولاني نشود ، من ساخت اين مجموعه را فقط با دو تا برنامه شرح خواهم داد ولي شما
ميتوانيد ، دقيقا" همين مواردي كه گفته خواهد شد را تكرار كرده و برنامه هاي مورد علاقه خود را در اين بسته
نرم افزاري قرار دهيد.
بنده در جلسه بعد چگونگي پرتابل كردن برنامه هاي Starter و WinRAR را توضيح خواهم داد.
در ضمن ، من در لينك زير برنامه WinRAR 5.00 Beta 5 را قرار داده ام. اين برنامه را طوري تنظيم كرده ام كه
پس از اجرا ، در عرض چند ثانيه برنامه بصورت مخفي هم نصب شده و هم اكتيو گردد.
http://www.mediafire.com/download/9luu59vh673zx4u/MCS50b5.rar
Magsoud
06-07-2013, 05:58 PM
درود
دوستان براي اينكه بتوانيم برنامه ها را بطريق PortableApps.com پرتابل كنيم بايستي سه كار را بترتيب
انجام دهيم :
1. فايل هائيكه براي پرتابل كار كردن برنامه لازم است تهيه گردد.
2. براي هر برنامه تعداد چهار عدد پوشه با شرح زير درست شود:
_ پوشه اي با نام خود برنامه . فرضا" اگر ميخواهيم برنامه WinRAR را پرتابل كنيم نام اين پوشه را WinRAR
تعيين مي كنيم.
_ سه تا پوشه با نام های Appdata و portable و Source كه بايد داخل پوشه بالا قرار داده شوند.
توضيحا" عرض كنم كه بعدا" در اين پوشه ها فايل هاي زير را خواهيم گذاشت:
__ در پوشه Appdata ، فایل های لازم برای اجرای برنامه گذاشته مي شوند.
__ در پوشه portable ، فایل های رجستری و يا نظائر آن كه براي اجراي برنامه لازمند ، قرار داده ميشوند.
__ در پوشه Source ، فایل کد برنامه NSIS و یک آیکن برای برنامه گذاشته ميشود.که برنامه NSIS از این
کد و آیکن برای ساخت فایل اجرایی هر برنامه پرتابل استفاده خواهد کرد.
3. بعد از اينكه مراحل بالا انجام شد بايد همه برنامه ها را به يك pack نرم افزاري تبديل كنيم.
حالا برويم سراغ پرتابل كردن اولين برنامه.
اولين برنامه اي كه ميخواهيم پرتابل كنيم Starter نام دارد . اين برنامه كه يكي از نرم افزار هاي مورد علاقه
من است ، ليست برنامه هاي در حال اجرا و ليست برنامه هائي را كه در حين Logon اجرا ميشوند و نيز
چند مشخصه ديگر از سيستم را با شروح مربوطه مشخص كرده و اجازه دستكاري هم مي دهد.
برنامه را در لينك زير آپلود كردم كه ميتوانيد دانلود فرمائيد.
http://www.mediafire.com/download/ytr7kwbn15t8316/Starter.rar
پرتابل كردن اين برنامه هيچ زحمتي ندارد. چون اين فايل ذاتا" توسط سازنده پرتابل ساخته شده. يعني اگر
روي اين فايل دابل كليك كنيد كار خواهد كرد.اجراي اين برنامه هيچ چيزي را به سيستم اضافه نكرده و هيچ
تغييري هم در سيستم ايجاد نميكند. يعني يك برنامه ايده آل براي استفاده و پرتابل كردن است
در كل اين برنامه نياز به پرتابل كردن ندارد ولي چون ما ميخواهيم يك Pack نرم افزاري بسازيم كه اين برنامه
هم عضوي از آن هست لذا بايد اعمال زير را انجام داد:
1. گفتم كه براي هر برنامه پرتابل بايد چهار تا پوشه بسازيم.بنابر اين برابر شرح داده شده اول پوشه اي بنام
خود برنامه پرتابل (Starter ) ساخته و بعد سه تا پوشه بنام هاي Appdata و portable و Source داخل آن
درست مي كنيم.
2. داخل پوشه Appdata بايد فايل هاي لازم برنامه پرتابل را قرار دهيم كه دز اين مثال ما فقط فايل Starter
را داريم لذا فايل Starter.exe را داخل اين پوشه قرار مي دهيم.
3. گفتيم كه در داخل پوشه portable ، فایل های رجستری و يا نظائر آن كه براي اجراي برنامه لازمند ، قرار
داده ميشوند. ولي اين برنامه براي كار كردن، نياز به هيچ تغييري در رجستري يا سيستم ندارد. لذا اين پوشه
را براي اين برنامه خالي مي گذاريم.
4.توضيح دادم كه در پوشه Source ، فایل کد برنامه NSIS و یک آیکن برای برنامه گذاشته ميشود. لذا اول يك
آيكن براي برنامه Starter.exe تهيه كرده و نام آن را دقيقا" به نام برنامه تغيير داده (در اين مثال Starter.ico)
و آن را داخل پوشه Source مي گذاريم حال بايد فايل کد برنامه NSIS را براي اين برنامه تهيه كرده و آن را
هم داخل اين پوشه قرار دهيم.كه بشرح زير كد برنامه را مي نويسيم.
من در اينجا شكلي از كد را قرار ميدهم كه عمومي است يعني شما ميتوانيد دقيقا" همين كد را بعنوان الگو
تقريبا" در اكثر برنامه هايتان فقط با تغيير نام ها بكار ببريد:
!define SNAME "XXX"
!include "Registry.nsh"
CRCCheck off
AutoCloseWindow True
SilentInstall silent
WindowIcon off
XPSTYLE on
Name "${SNAME}"
Icon "${SNAME}.ico"
Caption "${SNAME} Launcher"
OutFile "..\${SNAME}.exe"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
Section "Main"
;Needed settings to apply to registry
${registry::RestoreKey} "$EXEDIR\portable\AAA.reg" $R0
Sleep 300
;File to run after applying registry settings
ExecWait "$EXEDIR\Appdata\xxx.exe"
;Cleaning up when we close the application
${registry::RestoreKey} "$EXEDIR\portable\RegClean.reg" $R0
SectionEnd
كد هاي بالا را در notepad تايپ كرده و سپس آن را با نام general.nsi جائي نگهداري كنيد.شرح سطور اين
كد را در ادامه بحث توضيح خواهم داد.
حالا يك كپي از اين فايل را داخل پوشه Source در كنار Starter.ico قرار دهيد.
نام اين فايل general.nsi را به Starter.nsi تغيير دهيد.
فايلStarter.nsi را با notepad باز كرده و تغييرات زير را در آن اعمال نمائيد:
__ بجاي عبارت XXX در سطر اول كد ، بايد نام برنامه را بنويسيم لذا در اين جا عبارت XXX را به Starter
تغيير دهيد.
__ در سطور كد پائين برويد تا به قسمت Section "Main برسيد.اگر به اين قسمت توجه كنيد مي بينيد كه
بعد از عبارت Section "Main چند سطر كد نوشته شده و بعد عبارت SectionEnd وجود دارد.
برنامه NSIS وقتي به قسمتSection "Main برسد دستورات مابين اين عبارت تا عبارت SectionEnd را
بترتيب و سطر به سطر اجرا خواهد كرد.
در كدي كه بعد از قسمتSection "Main مي بينيد سطر اول كه با علامت ; شده يك توضيح است و
كاري انجام نميدهد. سطر بعدي دستوري است كه يك فايل رجستري بنام AAA.reg را اجرا كرده تنظيمات
سيستم را عوض ميكند. و سطر بعدي دستور باعث مي شود كه برنامه بعد از اجراي فايل رجستري مدت
300 ميلي ثانيه ساكت بماند و هيچ كاري نكند.
خوب ، گفتيم كه برنامه ما در اينجا (Starter.exe) نياز به اعمال هيچگونه تغييري براي اجرا ندارد. لذا ما نيازي
به سه سطري كه كارشان را در بالا توضيح دادم ندارد. بنابراين اين سه سطر را از داخل فايل Starter.nsi
حذف ميكنيم.
سطر بعدي كد كه با علامت ; شروع شده فقط يك توضيح است و نيازي به آن نداريم پس اين سطر را هم
پاك مي كنيم.
سطر بعدي دستور بايد فايل مورد نظر ما را ( يعني Starter.exe ) را اجرا كند لذا در اين سطر بجاي عبارت
xxx.exe عبارت Starter.exe را مي نويسيم. اين دستور باعث خواهد شد كه برنامه فايل Starter.exe را اجرا
كرده و بعد منتظر اين باشد كه ما برنامه را خاموش كنيم.
سطر بعدي كد كه با علامت ; شروع شده يك توضيح است كه نيازي به آن نداريم
سطر بعدي دستور زماني اجرا ميشود كه ما فايل Starter.exe را خاموش كنيم. بمحض خاموش كردن ،برنامه
در اين سطر فايل رجستري بنام RegClean.reg را اجرا خواهد كرد.
ما براي برنامه Starter چون هيچ تغييري در سيستم لازم ندارد، اين سطور بعدي را هم نياز نداريم و آن ها را
هم پاك ميكنيم ولي چون ممكن است مطلب مقداري گيج كننده شده باشد به شرح زير توجه كنيد.
ما داريم فايل پرتابلي را درست ميكنيم كه ميخواهيم استاندارد باشد.با اين كد ها در قسمتSection "Main"
اول تغييرات رجستري مورد نياز اجراي برنامه را فرستاده يعني تنظيمات رجستري سيستم را تغيير مي دهيم.
سپس فايلمان را اجرا مي كنيم ولي به برنامه ميگوئيم منتظر باش و بمحض خاموش شدن ، تغييراتي را كه
در اول كار داديم پاك كن
بهر حال براي برنامه مورد بحث فايل Starter.nsi در حال حاضر به صورت زير در آمده است كه ذخيره ميكنيم.
!define SNAME "Starter"
!include "Registry.nsh"
CRCCheck off
AutoCloseWindow True
SilentInstall silent
WindowIcon off
XPSTYLE on
Name "${SNAME}"
Icon "${SNAME}.ico"
Caption "${SNAME} Launcher"
OutFile "..\${SNAME}.exe"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
Section "Main"
ExecWait "$EXEDIR\Appdata\Starter.exe"
SectionEnd
ادامه بحث در جلسه بعدي.
Magsoud
06-08-2013, 04:11 PM
درود
نکته ای را در جلسه قبل در رابطه با فایل Starter.nsi فراموش کردم بگویم و آن این است که چون فایل ما
(Starter.exe ) تغییراتی در رجستری ایجاد نمیکند لذا نیازی به سطر دوم این فایل هم نداریم لذا سطر دوم
یعنی (!include "Registry.nsh) را هم نیازی نداشته و لذا پاک میکنیم.
حالا روی فایل Starter.nsi کلیک راست کرده و گرینه Compile NSIS script را انتخاب میکنیم. بعد از چند لحظه
فایلی بنام Starter.exe در پوشه Starter درست خواهد شد که اگر اجرایش کنیم فایل Starter.exe موجود
در پوشه Appdata را اجرا خواهد کرد.
فعلا" کارمان با برنامه Starter.exe تمام شده و فقط باید آن را به Pack مورد نظر اضافه کنیم.لذا در این مرحله
پوشه Starter را کنار گذاشته و سراغ پرتابل کردن برنامه WinRAR میرویم و در انتها چگونگی Pack کردن را
توضیح خواهم داد.
================
من برای این بحث ، پرتابل کردن برنامه WinRAR 5.00 Beta 5 را در نظر گرفته ام.
در رابطه با برنامه WinRAR لازم است که فقط نکات زیر را در رابطه با نیازمان در این مبحث بدانید:
__ وقتی این برنامه را نصب میکنیم فایل هایش در پوشه ای بنام WinRAR (داخل پوشه Program Files)
قرار میگیرند.
__ هنگام نصب این برنامه تنظیمات زیادی در رجستری سیستم ایجاد میشوند ولی این مسئله در رابطه
با برنامه WinRAR مهم نیست چون این برنامه هر وقت اجرا شود اگر تنظیمات موجود نباشند مجددا" درست
خواهد کرد. لذا نیازی نیست که از فایل رجستری برای این برنامه استفاده کنیم.
__ این برنامه در هر زمان که اجرا میشود دنبال فایل بخصوصی میگردد که اگر این فایل موجود باشد کامل کار
میکند و اگر نباشد، درخواست کد برای اکتیو شدن خواهد کرد.
تا جائیکه یادم می آید از ورژن 8 .3 ببعد این برنامه ،وقتی ما کد این نرم افزار را وارد میکنیم ، آن را معمولا"
با نام RARREG.KEY داخل یکی از پوشه هایش نگهداری میکند.
بنابراین موقع ساخت نوع پرتابل ، ما باید بتوانیم کاری کنیم که قبل از اجرای برنامه این فایل در محل مربوطه
موجود باشد.که چگونگی این کار را توضیح خواهم داد.
__ آخرین نکته ای که باید بدانید این است که این برنامه هم یک جور هائی پرتابل هست. بدین گونه که اگر
شما پوشه WinRAR (داخل پوشه Program Files) را کپی کرده و به کامپیوتر دیگری ببرید و بعد فایل
WinRAR.exe را از داخلش اجرا کنید ، کار خواهد کرد
حالا که این مشخصات را می دانیم بصورت زیر عمل میکنیم.
1. پوشه ای بنام WinRAR درست کنید.
2. سه تا پوشه بنام هاي Appdata و portable و Source داخل پوشه WinRAR درست كنيد.
3. فایل WinRAR 5.00 Beta 5 را که در پست شماره 8 لینکش را قرار دادم دانلود و نصب کنید.من این آموزش
را بر اساس همین نمونه توضیح میدهم و اگر نوع دیگری استفاده کنید ، با روشی که توضیح خواهم داد اکتیو
نخواهد شد.
4. به دایرکتوری نصب وارد شده و محتویات پوشه نصب شده WinRAR را داخل پوشه ساخته شده Appdata
کپی کنید.
5. در جلسه قبل توضیح دادم که باید داخل پوشه ساخته شده portable فایل های مورد نیاز برای اجرای
صحیح برنامه را قرار دهیم.
برنامه WinRAR پرتابل برای اجرای صحیح نیاز به دو چیز دارد. اول اینکه قبل از اجرای آن باید کاری کنیم که
برنامه اکتیو شده باشد. یعنی باید کاری کنیم که اول فایل اکتیو کننده در محل لازم قرار گیرد و سپس خود
برنامه اجرا شود. دوم اینکه چون در این مرحله تغییری در سیستم ایجاد می کنیم باید کاری کنیم که پس از
خاموش کردن برنامه ، بطور اتوماتیک تغییری که دادیم پاک شود.
برنامه WinRAR 5.00 Beta 5 که آموزش بر اساس آن هست برخلاف تمام WinRAR های دیگر عمل میکند.
تمام WinRAR های دیگر موقع اجرا دنبال فایلی بنام RARREG.KEY میگردند ولی این یکی را من طوری کرک
کرده ام که عوض فایل RARREG.KEY دنبال فایلی بنام Shirin میگردد!
لذا ما باید کاری بکنیم که قبل از اجرای برنامه اول فایل Shirin به داخل پوشه ای بنام WinRAR در داخل
پوشه Application Data ( در پروفایل کاربر ) کپی شود.
من برای اینکار فایلی بنام activate.exe ساختم که همین کار را میکند. پس شما هم باید فایلی مشابه آن
ساخته و سپس آن فایل را داخل پوشه ساخته شده portable بگذاریم.
6. حال یک آیکن برای برنامه پرتابلتان تهیه کرده و آن را با نام WinRAR.ico داخل پوشه Source قرار دهید.
7. فایل general.nsi را که در جلسه قبل درست کردید را به WinRAR.nsi تغییر نام داده و آن را هم داخل
پوشه Source قرار دهید.
8. فایل WinRAR.nsi را با notepad باز کرده و تغییرات زیر را در آن اعمال کنید:
__ در سطر اول بجای عبارت XXX نام برنامه یعنیWinRAR را قرار می دهیم.
__ چون در این مثال از تغییرات رجستری استفاده نکردیم لذا نیازی به سطر دوم نداشته و لذا این سطر را
پاک میکنیم.
__ در سطر بعد از Section "Main چون از تعییرات رجستری استفاده نمیکنیم ، لذا سه سطر مربوطه را حذف
کرده و بجایش دستور زیر را می نویسیم:
ExecWait "$EXEDIR\portable\activate.exe"
این دستور باعث میشود که فایل کرک ما بجای مربوطه کپی شود
9.در سطر بعدی کد چون فایل اجرائی ما ، فایل WinRAR.exe (داخل پوشه Appdata) است لذا بجای
xxx.exe نام فایل اجرائی یعنی WinRAR.exe را می نویسیم.
این دستور باعث خواهد شد که برنامه فایل WinRAR.exe را اجرا کرده و و منتظر بماند که ببیند چه زمانی
خاموش میشود.
10. دو سطر بعدی مربوط به رجستری هستند که لازم نداریم لذا آن را پاک کرده و بجایش دستورات زیر را
قرار میدهیم:
Delete $APPDATA\WinRAR\shirin
Delete $APPDATA\WinRAR\version.dat
RMDir $APPDATA\WinRAR\
این دستورات تغییراتی را که اجرای فایل پرتابل در سیستم ایجاد کرده پاک خواهد کرد.
اکنون فایل WinRAR.nsi بصورت زیر درآمده است:
!define SNAME "WinRAR"
!include "Registry.nsh"
CRCCheck off
AutoCloseWindow True
SilentInstall silent
WindowIcon off
XPSTYLE on
Name "${SNAME}"
Icon "${SNAME}.ico"
Caption "${SNAME} Launcher"
OutFile "..\${SNAME}.exe"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
Section "Main"
ExecWait "$EXEDIR\portable\activate.exe"
ExecWait "$EXEDIR\Appdata\WinRAR.exe"
;Cleaning up when we close the application
Delete $APPDATA\WinRAR\shirin
Delete $APPDATA\WinRAR\version.dat
RMDir $APPDATA\WinRAR\
SectionEnd
حالا روی فایل WinRAR.nsi کلیک راست کرده و گرینه Compile NSIS script را انتخاب میکنیم. بعد از چند
لحظه فایلی بنام WinRAR.exe در پوشه WinRAR درست خواهد شد که اگر اجرایش کنیم فایل WinRAR.exe
موجود در پوشه Appdata را اجرا خواهد کرد.
کارمان با برنامه WinRAR.exe تمام شد.
حال دو تا پوشه با نام های WinRAR و Starter داریم که آماده Pack کردن هستند.
در جلسه بعد مبحث را تمام خواهیم کرد.
توضیح:
--------
کل کار های انجام شده در طول این مبحث و فایل آماده مصرف را کلا" جهت استفاده علاقمندان در لینک زیر آپلود کردم:
http://www.mediafire.com/download/v98qhd3txgiya3t/My_Portables.rar
eDvArDo
06-08-2013, 04:39 PM
سلام
استاد عزيز، دستورات كامل انجام شد و فايل اجرايي (Starter) به همان صورت در محل خودش توليد شد ولي در اجرا پيام خطاي معتبر نبودن فايل در سيستم 32 بيتي را ميدهد!
كجاي كار ممكن است اشتباه باشد؟
Magsoud
06-08-2013, 04:50 PM
لطفا" فایل نهائی را که لینکش را گذاشته ام ( هردو برنامه موردبحث) دانلود و تست کرده
و با فایل خودت مقایسه کن
http://www.mediafire.com/download/v98qhd3txgiya3t/My_Portables.rar
Magsoud
06-08-2013, 07:44 PM
منوی برنامه ساخته شده براساس آموزش بالا
eDvArDo
06-09-2013, 01:16 PM
سلام
تنها فرق در وجود پوشه Source در پوشه برنامه هست كه حاوي دو چيز ميباشد: 1- آيكون برنامه 2- فايل كد برنامه
كه همونطور كه در آموزش خودتان فرموديد براي ساخت لانچر (فايل اجرايي شروع كننده برنامه) نياز هست.
بنده دارم ولي در شما قرار نداديد، چرا؟
در برنامه winrar هم شما اين پوشه را قرار نداديد!
eDvArDo
06-09-2013, 01:23 PM
سلام
استاد شايد سوالم كمي پيشپا افتاده باشد ولي ميخواهم بدانم چطوري فايل اجرايي activate را كه حاوي پوشه
winrar كه در داخلش فايل كد رجيستري برنامه قرار دارد را با آيكون دلخواه ساختيد؟ با NSIS ياAutoIT ؟ يا شايد Resource Hacker ويا ترفندهايي ديگر؟
لطفاً آموزشش را قرار دهيد، لطفاً
استاد، سپاس
Magsoud
06-09-2013, 02:18 PM
درود
1.در انتهای کار (که هنوز توضیح نداده ام ) نیازی به پوشه Sources و محتویاتش نیست.
2. محتویات پوشه Sources خودم را برای هردو برنامه توضیح داده شده برای استفاده جنابعالی
و دیگر عزیزان در لینک زیر آپلود کردم تا زیاد اعتراض نکنی
http://www.mediafire.com/download/3zggdxremhm2324/Sources.rar (http://www.mediafire.com/download/9luu59vh673zx4u/MCS50b5.rar)
3. در مورد سوالتان ، عزیزان دیگری هم موضوع برایشان جالب بوده و به نوع های مختلف توسط
پیام و غیره سوال داشتند
تاپیکی با نام کرک کردن کامل WinRAR 5.00 Beta 5 درست کنید تا پس از پایان این بحث آن
را هم توضیح دهم.
eDvArDo
06-09-2013, 03:15 PM
استاد عزيز، لينكي كه قرار داديد فقط فايل نصبي winrar هست!!!
Magsoud
06-09-2013, 03:23 PM
حق با شماست شرمنده شدم . نمیدانم چرا لینک را اشتباه گذاشتم
بهر حال لینک فایل های سورس عبارت است از:
http://www.mediafire.com/download/3zggdxremhm2324/Sources.rar
eDvArDo
06-09-2013, 03:29 PM
استاد اين روش (Portable software (PortableAppZ.blogspot.com مشابهت داره؟
بنظر ميرسه با همون سبك و سياق هستند، اينطور نيست؟
Applications that only use files in their folder are naturally portable (http://portableappz.proxima.web.tr/tutorial.php#launch), but most of them use registry (http://portableappz.proxima.web.tr/tutorial.php#keys), files (http://portableappz.proxima.web.tr/tutorial.php#files) and folders (http://portableappz.proxima.web.tr/tutorial.php#dirs)on host computer (local).
Prepare portable
Get program files
First of all you have to extract files from setup with a program such as Universal Extractor (http://legroom.net/software/uniextract) and if you can't you have to install. In this case monitor setup with Total Uninstall (http://www.martau.com/) (doing so you will be able to clean your computer and know what need program).
The simpliest example is CCleaner (http://www.ccleaner.com/), download (http://www.ccleaner.com/download/builds) portable and unzip in CCleanerPortable\App\CCleaner (you can create these 3 folders at one time with Total Commander).
Monitor running and/or setup
Launch Total Uninstall (http://rapidshare.com/files/1303663510/Total_Uninstall_Portable_4.10_Multilingual.paf.exe ), click Install, Browse to CCleanerPortable\App\CCleaner\CCleaner.exe
Click on Next to Build A New Snapshot
Click on Next to Launch setup application Now
CCleaner launch in english. Look in Options-Advanced that Save all settings to INI file can't be uncheck (due to portable.dat file). Choose your language in Options-Settings and close CCleaner.
Click Next in Total Uninstall to Make the post install snapshot and find the changes. Click Close to view changes:file:///F:/SANDOOGHCHE/Portable%20software%20(PortableAppZ.blogspot.com)/PortableAppZ.blogspot.com%20-%20Portable%20software%20for%20USB%20drives_files/CCleanerTU.png
There is no change! CCleaner is naturally portable.
Prepare launcher
In this case launcher is useless but it can do some settings and move them in Data.
If there is no portable.dat file in its folder, CCleaner use ini file only if found in its folder. Otherwise, use registryHKEY_CURRENT_USER\Software\Piriform.
A good thing is to force use ini creating portable.dat, another is to move ini file in Data to keep settings when update.
Launcher can also write in CCleaner.ini to fix some settings:
[Options]Language=1036BackupDir=L:\PortableApps\CCleanerPor table\Backups1036 is the decimal id of french and can be returned by GetUserDefaultLangID of kernel32, we will use it to fix automatically language.
Launch app
Launcher is a small exe in *Portable folder compiled with NSIS (http://nsis.sourceforge.net/). Download and install NSIS.
Minimal launcher
Copy-paste the script below in Notepad++ and save as CCleanerPortable.nsi in CCleanerPortable folder.
Right-click and Compile NSIS Script, it will create a some tens of kB executable
WindowIcon OffSilentInstall SilentAutoCloseWindow TrueOutFile CCleanerPortable.exeSection ExecWait "$EXEDIR\App\CCleaner\CCleaner.exe"SectionEnd
launcher don't display icon
launcher don't display screen output
launcher automatically close when completed
launcher name will be CCleanerPortable.exe
Code executed must be in Section: Execute CCleaner.exe and wait to quit ($EXEDIR is the path of the launcher)
Structured launcher
Download and extract CCleanerPortableSources (http://portableappz.proxima.web.tr/sources/CCleanerPortable.zip) in your CCleanerPortable folder.
Open in Notepad++ CCleanerPortable_1.nsi.
To use always the same parts of scrpit we use constants and we use functions called in main section to have a clear structure of running.
Lines begining with semicolons are commented and not compiled.
Read comments and search in NSIS help to understand.
Complete launcher
Open in Notepad++ CCleanerPortable_2.nsi.
Added: version info, securities before starting, customization, splash and passing receipts parameters.
You will need FindProcDLL plug-in (http://nsis.sourceforge.net/FindProcDLL_plug-in): download and install Optimized by size binaries.
Final launcher
Open in Notepad++ CCleanerPortable_3.nsi.
Same script than 2, but common parts with all launchers are moved to PortableApp.nsh called with !include.
Backup and restore registry keys
Registry plug-in
You will need this NSIS plug-in for registry (http://nsis.sourceforge.net/Registry_plug-in) to compile.
Download, extract and Install (in Desktop): it will copy Registry.dll in Plugins and Registry.nsh in Include.
Target: Audacity 1.2.6 (http://audacity.sourceforge.net/)
Download audacity-win-1.2.6.zip (http://audacity.sourceforge.net/latest/audacity-win-zip/audacity-win-1.2.6.zip) and unzip in AudacityPortable\App\Audacity
Monitor running of audacity.exe with Total Uninstall (don't associate to .AUP)
Open and save an audio file. Do some settings in Edit: Preferences...
Files Format: MP3 Export Setup: Find Library to locate lame_enc.dll
Directories: Choose Temp. Directory Location
Close and view changes:
file:///F:/SANDOOGHCHE/Portable%20software%20(PortableAppZ.blogspot.com)/PortableAppZ.blogspot.com%20-%20Portable%20software%20for%20USB%20drives_files/AudacityReg.png
Export Registry Changes in Win9x/NT4 Registration File Type:
REGEDIT4[HKEY_CURRENT_USER\Software\Audacity\Audacity]"WantAssociateFiles"=dword:00000000[HKEY_CURRENT_USER\Software\Audacity\Audacity\Direc tories]"TempDir"="C:\\DOCUME~1\\Admin\\LOCALS~1\\Temp\\AudacityPorta bleTemp\\"[HKEY_CURRENT_USER\Software\Audacity\Audacity\MP3]"MP3LibPath"="L:\\PortableApps\\AudacityPortable\\App\\LAME\\lam e_enc.dll"Only the above registry entries have to be done by launcher (others are user settings that have to be kept in Data).
Download Reg2Nsis (http://nsis.sourceforge.net/Reg2Nsis_-_convert_registry_info_into_NSIS_commands) and install context menu. Right-click on reg file and Convert to nsis script you will get this .nsh file:
WriteRegDWORD HKEY_CURRENT_USER "Software\Audacity\Audacity" "WantAssociateFiles" 0x0WriteRegStr HKEY_CURRENT_USER "Software\Audacity\Audacity\Directories" "TempDir" \"C:\DOCUME~1\Admin\LOCALS~1\Temp\AudacityPortableTe mp\"WriteRegStr HKEY_CURRENT_USER "Software\Audacity\Audacity\MP3" "MP3LibPath" \"L:\PortableApps\AudacityPortable\App\LAME\lame_enc .dll"C:\DOCUME~1\Admin\LOCALS~1\Temp is the system temporary directory: $TEMP
L:\PortableApps\AudacityPortable is the directory containing the launcher: $EXEDIR
Download an extract AudacityPortable (http://www.mediafire.com/download.php?emmfogzf4mw)
Open AudacityPortable_1.nsi in Notepad++
In TU monitor we saw that only one registry key was used by Audacity HKEY_CURRENT_USER\Software\Audacity but can be used by a possible installed version.
BackupLocalKeys
HKEY_CURRENT_USER\Software\Audacity is renamed in HKEY_CURRENT_USER\Software\Audacity-BackupByAudacityPortable.
RestorePortableKeys
Settings saved in Data\Audacity.reg (when closing a previous run of portable) are merged to registry.
Init
This function force settings needed to be portable, update paths and overwrite those previously restored.
Close
Audacity is closed: delete temp folder.
BackupPortableKeys
Settings saved in Data\Audacity.reg.
RestoreLocalKeys
Opposite of backup.
Backup and restore folders
Target: Instant Color Picker (http://www.youngsmarts.com/products/icp/)
Download icp_setup.exe (http://www.yazalim.com/downloads/icp/icp_setup.exe) and extract files with Universal Extractor (http://legroom.net/software/uniextract) or Inno Setup Unpacker (http://innounp.sourceforge.net/)
Copy the content of {app} in
InstantColorPickerPortable\App\InstantColorPicker
and the content of {userappdata}\Young Smart Software in
InstantColorPickerPortable\Data\InstantColorPicker
"Install" icp.exe with Total Uninstall
Close and view changes:
file:///F:/SANDOOGHCHE/Portable%20software%20(PortableAppZ.blogspot.com)/PortableAppZ.blogspot.com%20-%20Portable%20software%20for%20USB%20drives_files/ICP.png
ICP only use Young Smart Software folder in C:\Documents and Settings\Admin\Application Data ($APPDATA for NSIS)
Download and extract InstantColorPickerPortable (http://www.mediafire.com/download.php?djgoutynowj).
Open InstantColorPickerPortable_Lite.nsi in Notepad++
BackupLocalDirs
In Application Data, Young Smart Software folder is renamed in Young Smart Software--BackupByInstantColorPickerPortable
RestorePortableDirs
Portable settings in Data\InstantColorPicker are copied in Application Data\Young Smart Software.
(We have to use CopyFiles instead of Rename because drives are differents).
BackupPortableDirs
ICP is closed, we do reverse of RestorePortableDirs.
RestoreLocalDirs
Reverse of BackupLocalDirs
Backup and restore files
Same way than for folders. Download this template (http://portableappz.proxima.web.tr/sources/MyProgPortable.zip) where you will foud actions on registry, folders and files.
If you have several of them you have to copy lines and increase index of lines with tab:
!define REGKEY1 "HKEY_LOCAL_MACHINE\SOFTWARE\MyProg" !define REGKEY2 "HKEY_CURRENT_USER\Software\MyProg";... ${registry::DeleteKey} "${REGKEY1}-BackupBy${APP}Portable" $R0 ${registry::MoveKey} "${REGKEY1}" "${REGKEY1}-BackupBy${APP}Portable" $R0 ${registry::DeleteKey} "${REGKEY2}-BackupBy${APP}Portable" $R0 ${registry::MoveKey} "${REGKEY2}" "${REGKEY2}-BackupBy${APP}Portable" $R0;... Deletion of backup not needed in normal use, but if there was a crash not recovered, old backup prevent MoveKey.
Comment or delete constants, functions and calls not used.
Complements
Read NSIS User Manual Chapter 4: Scripting Reference to learn more about Functions, Instructions, Variables, Constants...
NSIS Constants
Many constants ($APPDATA, $SYSDIR...) are defined in NSIS and their values depends of Windows version and localization.
Run NSIS_Constants (http://portableappz.proxima.web.tr/sources/NSIS_Constants.zip) to write in an ini file the values of these constants on your computer. They are often the same with SetShellVarContext current or all.
eDvArDo
06-09-2013, 04:10 PM
استادجان، فكر كنم جريان فايل اجرايي activate را متوجه شدم! احتمالاً با نرمافزار winrar و بصورت يك فايل SFX درآورديد، آره؟
Magsoud
06-09-2013, 04:38 PM
درود
من تا جائیکه یادم می آید در WinRAR 5.00 Beta 5 از فایلی بنام activate استفاده نکرده ام
ولی در ورژن های دیگر چرا.
این ورژن با روشی که بکار برده ام خودی خود اکتیو خواهد شد.شاید شما ورژن دیگری از فایل
بنده را دارید.
در ضمن در رابطه با مطلب دیگرتان ، قبلا" هم عرض کردم که شرکت های دیگری هم از روش
تقریبا" مشابه PortableApps.com (یعنی با استفاده از NSIS ) ، برنامه های پرتابل می سازند
بهر حال روش کار همگی تقریبا" مثل هم بوده و اسکلت کار تا حدودی فرق میکند.
در ضمن نگفتید که موفق شدید یا نه.
========================
بعدا" اضافه شد
شما منظورتان فایل موجود در پرتابل است.
بله با winrar آن را sfx کردم
Magsoud
06-09-2013, 05:44 PM
درود
دوستان ، سوالات مختلفی که مطرح شد باعث شدند که ادامه آموزش بتعویق بیفتد. از این بابت عذرخواهی
میکنم.
در حال حاضر با دو تا پوشه با نام های WinRAR و Starter داریم که آماده Pack کردن هستند.
برای پک کردن این دو تا برنامه به روش شرکت PortableApps.com ، این شرکت یک برنامه کوچکی طراحی کرده
کرده که PortableApps.com Platform نام دارد.
این برنامه ورژن های متفاوتی دارد که در حال حاظر آخرین ورژن نوع Stable آن 11.2 بوده و آخرین ورژن آزمایشی
آن 12.0 ( Beta_2 ) است.
در تمام ورژن های برنامه ، هسته کار یکی بوده ولی طرز کاربرد مختصری فرق کرده است.بهر جهت بنده برای
انجام اینکار ورژن 1.6 این برنامه را پسندیده و آن را ازتمام ورژن های دیگر بهتر میدانم.
===============
وقتی ورژن 1.6 برنامه را اجرا کنید (یا هر ورژن دیگری) ، برنامه فایل های داخلش را به جائی که مشخص می کنید
Extract میکند . من فرض میکنم که شما آن را به آدرس C:\My Portables ریخته اید.
داخل این پوشه فایل های StartPortableApps.exe و Autorun.inf و نیز دوتا پوشه زیر را خواهید داشت:
Documents
PortableApps
حال از داخل پوشه های WinRAR و Starter که آماده Pack کردن هستند ، پوشه Source را حذف کنید.
اکنون پوشه های WinRAR و Starter را به داخل پوشه C:\My Portables\PortableApps کپی کنید.
کار تمام است. اکنون اگر فایل C:\My Portables\StartPortableApps.exe را اجرا کنید خواهید دید که منوئی
مثل منوی شرکت PortableApps.com ظاهر میشود که دارای دو گزینه Starter و WinRAR است که روی
هر کدام کلیک کنید اجرا خواهند شد.
میتوانید برای راحتی کار نام StartPortableApps.exe را به Start.exe تغییر دهید.
میتوانید برنامه های دیگر پرتابل را به روش گفته شده درست کرده و آن ها را هم بداخل پوشه فوق بگذارید
برنامه همه آن ها را شناسائی حواهد کرد.
توضیح:
--------
کل کار های انجام شده در طول این مبحث و فایل آماده مصرف را کلا" جهت استفاده علاقمندان در لینک زیر آپلود کردم:
http://www.mediafire.com/download/v98qhd3txgiya3t/My_Portables.rar
eDvArDo
06-13-2013, 03:47 PM
سلام
استاد اين نرمافزار جالب هم مثل PortableApps.com Platform عمل ميكنه.
پيوست: [CodySafe Sigma [eDvArDo
سپاس
vBulletin v4.2.5, Copyright ©2000-2025, Jelsoft Enterprises Ltd.