PDA

View Full Version : سوال: نصب برنامه در پس زمینه



ali.monje
پنج شنبه 18 تیر 1394, 14:37 عصر
سلام دوستان
طاعات و عباداتون قبول حق
یه سوال دارم
میخواستم بدونم آیا راه حلی هست یک برنامه رو بدون هیچگونه صفحه setup یا هر چیز دیگه ای نصب کرد؟
دقیق بخوام بگم، مثلا فرض کنین من یه برنامه خیلی ساده ساختم که روش فقط یدونه دکمه داره و نوشته نصب دات نت 3.5 ، وقتی کاربر اونو کلیک میکنه، هیچ چیزی براش به نمایش در نیاد و دان نت 3.5 تو پس زمینه نصب بشه و بعد اینکه نصبش تموم شه به کاربر از طریق همون برنامه اولی خبر بده که برنامه نصب شد. اگه وسط کار هم اگه درصد پیشرفت نصب رو بشه نشون داد که دیگه عالی میشه.
مهم نیست این برنامه مادر یا نصاب به زبان C هست یا C++ یا از خانواده دات نت ( البته کمتر از 3 که روی ایکس پی هم کار کنه) مهم این هست که امکانش هست یا نه، با توجه امینت ویندوز ویستا، 7 و 8 تو نصب برنامه ها ، همین که این برنامه تنها روی ویندوز ایکس پی کار کنه که تو زمینه نصب از امینت پایینی برخوردار هست کافیه

اگه در این خصوص بندهر و راهنمایی بفرمائید ممنون میشم

( البته دیگه نمیدونم انجمن رو درست انتخاب کردم برای این سوال یا نه )

Desaghi
پنج شنبه 18 تیر 1394, 16:14 عصر
از web setup project نرم افزار visual studio استفاده کنید.

ali.monje
پنج شنبه 18 تیر 1394, 16:39 عصر
از web setup project نرم افزار visual studio استفاده کنید.

ممنون ولی ببینید برنامه های نصاب برای خودشون ui دارن و خودشون مدیریت نصب رو بر عهده میگیرن. من به چیزی مثل دستور زیر که مال c# هست احتیاج دارم که یک دستور رو توی cmd اجرا میکنه بدون اینکه cmd هم به نمایش در بیاد. و نصب در پس زمینه و توسط msiexec اجرا میشه که از زیر برنامه های windows installer هست.
من دنبال شبیه سازی این دستورات در محیط هایی شبیه visual C++ هستم.





System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c C:\DotNetFX35SP1\dotnetfx35.exe /quiet /norestart /q";
process.StartInfo = startInfo;
process.Start();

negative60
پنج شنبه 18 تیر 1394, 19:55 عصر
برای نصب مخفی ميتونيد از تابع ShellExecute API استفاده کنيد اما با اين تابع نميشه متوجه شد که کار پروسه کی به پايان رسيده پس بايد از تابع CreateProcess (https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx) API استفاده کنيد
درصد نصب برنامه رو نميتونيد به دست بياريد چون اين به اينستالر مربوطه