PDA

View Full Version : سوال: کمک برای نوشتن برنامه ای برای نصب خودکار برنامه ها در ویندوز



Xartemisx
دوشنبه 06 مرداد 1393, 03:33 صبح
سلام
تو فکر اینم که برنامه ای بنویسم که برنامه هایی که در پوشه ای دارم رو خودکار برام نصب کنه که شامل مراحل نصب هم میشه
به طور مثال پلیر ، آنتی ویروس و... رو توی پوشه قرار بدم و برنامه خودش دونه دونه ی برنامه ها رو نصب کنه، مراحل نصب رو هم خودش انجام بده
مشکلم بیشتر تو انجام مراحل نصبه که چطور خودش نصبو بدون هیچ مشکل و سوالی انجام بده
کسی راهی به ذهنش میرسه؟؟؟

abbas.oveissi
دوشنبه 06 مرداد 1393, 03:41 صبح
سلام
تو فکر اینم که برنامه ای بنویسم که برنامه هایی که در پوشه ای دارم رو خودکار برام نصب کنه که شامل مراحل نصب هم میشه
به طور مثال پلیر ، آنتی ویروس و... رو توی پوشه قرار بدم و برنامه خودش دونه دونه ی برنامه ها رو نصب کنه، مراحل نصب رو هم خودش انجام بده
مشکلم بیشتر تو انجام مراحل نصبه که چطور خودش نصبو بدون هیچ مشکل و سوالی انجام بده
کسی راهی به ذهنش میرسه؟؟؟
از کجا میخواهید بفهمید در حاضر کدوم دکمه را فشار دهید ؟ همه برنامه ها که یکجور نصب نمیشوند و تنظیمات خاص خودشون رو نیاز دارند بطور مثال اگر برنامه در طول نصب نیاز به پسورد داشته باشد،اون وقت چیکار میخواهید بکنید یا شاید پرسیده بود که میخواهید نسخه ی قبلی برنامه پاک شود یا نه؟خب اینارو کاربر باید تصمیم بگیره.

mz6488
دوشنبه 06 مرداد 1393, 03:54 صبح
فکر کنم من قبلا با نرم افزار Macro Express 3.8.0.1 کار کردم که میاد نرم افزارها رو به صورت اتوماتیک نصب میکنه.اولش واسه ضبط یه بار نرم افزار مربوطه رو نصب میکنی بعد تو دفعات بعد خودش میاد نرم افزار رو نصب میکنه.اینو ببین شاید به کارت اومد

Xartemisx
دوشنبه 06 مرداد 1393, 04:01 صبح
از کجا میخواهید بفهمید در حاضر کدوم دکمه را فشار دهید ؟ همه برنامه ها که یکجور نصب نمیشوند و تنظیمات خاص خودشون رو نیاز دارند بطور مثال اگر برنامه در طول نصب نیاز به پسورد داشته باشد،اون وقت چیکار میخواهید بکنید یا شاید پرسیده بود که میخواهید نسخه ی قبلی برنامه پاک شود یا نه؟خب اینارو کاربر باید تصمیم بگیره.
مشکل من هم همینه و دنبال راه حل برای همینم، اگه راهی به ذهنتون میرسه بگید


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

hadi vafaii
دوشنبه 06 مرداد 1393, 04:30 صبح
شاید بهم بخندین اما نخندینا یه چی همین جور به ذهنم رسید
نمیشه کدی نوشت که از فلان درایو مثلا این فایل اگزه رو بخون و اگه به هر باتنی که تکستش برابر بود با نکست روش رویداد کیلیک رو انجام بده و الی آخر؟البته فکر کنم باید قبلش یه بار خودت نصب کنی و ببینی مثلا چک باکسی نداره که بهش بگی که اون چک باکسو تورو کن و .... حالا بخندین:لبخند:

abbas.oveissi
دوشنبه 06 مرداد 1393, 04:34 صبح
شاید بهم بخندین اما نخندینا یه چی همین جور به ذهنم رسید
نمیشه کدی نوشت که از فلان درایو مثلا این فایل اگزه رو بخون و اگه به هر باتنی که تکستش برابر بود با نکست روش رویداد کیلیک رو انجام بده و الی آخر؟البته فکر کنم باید قبلش یه بار خودت نصب کنی و ببینی مثلا چک باکسی نداره که بهش بگی که اون چک باکسو تورو کن و .... حالا بخندین:لبخند:
با UI Automation که میدونم میشه همچین کاری رو کرد. من بیشتر بحثم رو اینه که چطور بعضی جاها که تصمیم ها خیلی مهمه الکی برنامه روی Next کلیک نکنه.در واقع برنامه نیاز به درک و استنتاج داره که بتونه اینارو بفهمه.
مثلا باید برنامه همیشه در حال اجر باشه و رصد کنه که کاربر توی نصب برنامه های مخلف آیا مسیر پیش فرض رو تغییر میده یا نه؟!بعدا اگر به همچین صفحه ای رسید بر اساس اون تصمیم بگیره.البته مثال بود وگرنه مسیر نصب اصولا خیلی مهم نیست.

آپدیت : تازه برنامه های ایرانی که نرم افزار باید دست و چشم هم داشته باشه که اصولا نیاز به خوندن سریال از رو سی دی یا اس ام اس زدن هست :لبخند:

hadi vafaii
دوشنبه 06 مرداد 1393, 04:36 صبح
من الان یه چیزی نوشتم که اگه فرم یک لود شد و باتن تکستش برابر بود با 1 فرم دو رو لود کن و بعدش اونو ببند حالا نمیدونم تو اون نرم افزاره لازمه که بدونیم که نیمه باتن چی هست یا نه اگه بگی که هر شی که تکستش نکست بود کلیکش کن یا هر شی که باتن بود و تکستش نکست بود کلیک کن :متفکر:

hadi vafaii
دوشنبه 06 مرداد 1393, 04:41 صبح
با UI Automation که میدونم میشه همچین کاری رو کرد. من بیشتر بحثم رو اینه که چطور بعضی جاها که تصمیم ها خیلی مهمه الکی برنامه روی Next کلیک نکنه.در واقع برنامه نیاز به درک و استنتاج داره که بتونه اینارو بفهمه.
مثلا باید برنامه همیشه در حال اجر باشه و رصد کنه که کاربر توی نصب برنامه های مخلف آیا مسیر پیش فرض رو تغییر میده یا نه؟!بعدا اگر به همچین صفحه ای رسید بر اساس اون تصمیم بگیره.البته مثال بود وگرنه مسیر نصب اصولا خیلی مهم نیست.
اکثرا برنامه ها تو مثلا فلدر پروگرم نصب میشن دیگه میشه بهش بگی که برو درایوارو چک کن و هر جا که بیشترین مورد نصب شده اون درایو رو هدف قرار بده و اونجا نصب کن و ادامه بده کار رو :متفکر:

abbas.oveissi
دوشنبه 06 مرداد 1393, 04:44 صبح
اکثرا برنامه ها تو مثلا فلدر پروگرم نصب میشن دیگه میشه بهش بگی که برو درایوارو چک کن و هر جا که بیشترین مورد نصب شده اون درایو رو هدف قرار بده و اونجا نصب کن و ادامه بده کار رو :متفکر:
گفتم که این یک مثال بود برای اینکه منظورمو برسونم وگرنه اصولا این قضیه خیلی مهم نیست.


من الان یه چیزی نوشتم که اگه فرم یک لود شد و باتن تکستش برابر بود با 1 فرم دو رو لود کن و بعدش اونو ببند حالا نمیدونم تو اون نرم افزاره لازمه که بدونیم که نیمه باتن چی هست یا نه اگه بگی که هر شی که تکستش نکست بود کلیکش کن یا هر شی که باتن بود و تکستش نکست بود کلیک کن :متفکر:
باید به این نکته دقت کنید که الان شما دارید توی برنامه خودتون این کار رو انجام می دهید . دسترسی به دکمه در برنامه دیگه کلا فرق داره.

Xartemisx
دوشنبه 06 مرداد 1393, 05:24 صبح
خیلی ممنون از نظرات
خب یه چیزی میمونه، اینکه کاربر اگر بخواد برنامه ای خودکار نصب بشه، یعنی اینکه ازش سوالی پرسیده نشه، یعنی با علم به اینکه ممکنه چک باکس هایی در مسیر نصب باشه، نصب خودکارو انتخاب میکنه که خب این میشه همونی که بعضیا اشاره کردن یعنی برنامه باید همیشه روی next کلیک کنه و ادامه بده و به چک باکس ها و آپشن ها کاری نداشته باشه
یه مورد دیگم هست که کاربر تو بعضی برنامه های میخواد مسیر رو تغییر بده و یا آپشن ها رو تغییر بده
پس ما اول یه لیست درست میکنیم حاوی چک باکس، که کاربر برنامه هایی رو که نمیخواد خودکار نصب شن رو تیکشو برداره، که در این صورت اون برنامه هارو دستی نصب میکنه، میمونه بقیه برنامه ها که میخواد خودکار نصب شن و ما دقتمون باید روی همین گزینه باشه
البته باید بگم که ما باید انتخاب مسیر نصب همه ی برنامه های خودکار و تعیین وضعیت چندتا از چک باکس های رایج در نصب برنامه ها رو هم به برنامه ی خودمون اضافه کنیم، مثلا تو اکثر برنامه ها یه گزینه داریم که شورتکات رو دستک تاپ ایجاد بشه یا نه
الان مساله ی اصلی نحوه ارتباط برقرار کردن با فرم نصب برنامه هاست
میتونیم برای اولین بار هر برنامه ای که تو لیستمون یعنی تو پوشمون داریم رو خودمون نصب کنیم، تا برنامه ی ما نحوه عملکرد ما رو تو خودش ذخیره کنه، و دفعه بعد ازون پیروی کنه، که در این صورت لیست برنامه ها باید غیر قابل تغییر باشه، البته راه جالبی نیست ولی خب با این حال همینم ساده نیست
کسی پیشنهاد دیگه ای داره؟

juza66
دوشنبه 06 مرداد 1393, 07:39 صبح
با AutoIt ......................

hadi vafaii
دوشنبه 06 مرداد 1393, 13:02 عصر
خیلی ممنون از نظرات
خب یه چیزی میمونه، اینکه کاربر اگر بخواد برنامه ای خودکار نصب بشه، یعنی اینکه ازش سوالی پرسیده نشه، یعنی با علم به اینکه ممکنه چک باکس هایی در مسیر نصب باشه، نصب خودکارو انتخاب میکنه که خب این میشه همونی که بعضیا اشاره کردن یعنی برنامه باید همیشه روی next کلیک کنه و ادامه بده و به چک باکس ها و آپشن ها کاری نداشته باشه
یه مورد دیگم هست که کاربر تو بعضی برنامه های میخواد مسیر رو تغییر بده و یا آپشن ها رو تغییر بده
پس ما اول یه لیست درست میکنیم حاوی چک باکس، که کاربر برنامه هایی رو که نمیخواد خودکار نصب شن رو تیکشو برداره، که در این صورت اون برنامه هارو دستی نصب میکنه، میمونه بقیه برنامه ها که میخواد خودکار نصب شن و ما دقتمون باید روی همین گزینه باشه
البته باید بگم که ما باید انتخاب مسیر نصب همه ی برنامه های خودکار و تعیین وضعیت چندتا از چک باکس های رایج در نصب برنامه ها رو هم به برنامه ی خودمون اضافه کنیم، مثلا تو اکثر برنامه ها یه گزینه داریم که شورتکات رو دستک تاپ ایجاد بشه یا نه
الان مساله ی اصلی نحوه ارتباط برقرار کردن با فرم نصب برنامه هاست
میتونیم برای اولین بار هر برنامه ای که تو لیستمون یعنی تو پوشمون داریم رو خودمون نصب کنیم، تا برنامه ی ما نحوه عملکرد ما رو تو خودش ذخیره کنه، و دفعه بعد ازون پیروی کنه، که در این صورت لیست برنامه ها باید غیر قابل تغییر باشه، البته راه جالبی نیست ولی خب با این حال همینم ساده نیست
کسی پیشنهاد دیگه ای داره؟


:متفکر:

فکر کنم باید یه چیزی نوشت که با هیچی کاری نداشته باشه و فقط اینارو چک کنه و واکنش نشون بده

هر باتنی که تکستش نکست هست رو کلیک کن
هر چک باکسی که تکستش اکسپت هست ترو کن
درایوارو چک کن هرجا بیشترین فایل نصبی هستش رو هدف قرار بده و اونجا نصب کن
یا تو درایوی که از قبل مد نظرمونه رو بدیم که اونجا نصب کنه البته میشه اولویت بندی هم کرد که این نشد تو اون یکی نصب کن
و....................

Xartemisx
دوشنبه 06 مرداد 1393, 20:52 عصر
:متفکر:

فکر کنم باید یه چیزی نوشت که با هیچی کاری نداشته باشه و فقط اینارو چک کنه و واکنش نشون بده

هر باتنی که تکستش نکست هست رو کلیک کن
هر چک باکسی که تکستش اکسپت هست ترو کن
درایوارو چک کن هرجا بیشترین فایل نصبی هستش رو هدف قرار بده و اونجا نصب کن
یا تو درایوی که از قبل مد نظرمونه رو بدیم که اونجا نصب کنه البته میشه اولویت بندی هم کرد که این نشد تو اون یکی نصب کن
و....................


خب مشکل اینه که فرم نصب برنامه یکی از فرم های خودمون نیست که راحت باهاش ارتباط برقرار کنیم، با یه فرم خارجی چطوری ارتباط برقرار کنیم؟؟

امیر مهرشاد
دوشنبه 06 مرداد 1393, 21:51 عصر
حرفه ای بخوای فقط برو سراغ hook خیلی چیزای دیگه میتونی مانیتور کنی ولی کار ساده ای نیست:شیطان:

abbas.oveissi
دوشنبه 06 مرداد 1393, 22:18 عصر
خب مشکل اینه که فرم نصب برنامه یکی از فرم های خودمون نیست که راحت باهاش ارتباط برقرار کنیم، با یه فرم خارجی چطوری ارتباط برقرار کنیم؟؟
روی UI Automation تحقیق کنید.برای خود دات نت هست.بدرد اینجور کارها میخوره.