PDA

View Full Version : سوال: استفاده از batch فایل (bat.) در برنامه سی شارپ



mehrdad1991h
شنبه 09 دی 1391, 21:58 عصر
سلام
میخوام ببینم چجوری میتونم دستوراتی که میخوام از طریق فایل bat اجرا کنم را در برنامه ام بنویسم که بفرسته به فایل و اجرا بشن

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

کاری هم که میخوام بکنم اینه که فقط 1 خط را از طریق این فایل میخوام اجرا کنم میخوام که یکی خاصیت از یک برنامه ، اجرا بشود از طریق این فایل از طریق دیگری هم نمیشود !!!

در این مورد هیچی تجربه ندارم
اگر ممکنه یه توضیح مختصر بدید با یه نمونه کد کوتاه
ببخشید وقتتون را گرفتم
سپاس

mehrdad1991h
شنبه 09 دی 1391, 23:40 عصر
دوستان لطفا کمک کنید
این را ببینید
http://www.internetdownloadmanager.com/support/command_line.html
من میخوام دانلود منیجر را با سی شارپ کاری کنم که شروع به دانلود کنه
الان این پارامتراش هم از این صفحه مشخصه
من چجوری این کار را بکنم
لطفا کمک کنید
سپاس

plus
یک شنبه 10 دی 1391, 00:27 صبح
System.Diagnostics.Process.Start(@"C:\...\IDMan.exe", "/s");

توجه کنید که باید آدرس فایل Exe رو کامل وارد کنید من اینجا خلاصه نوشتم. بجای s/ هم میتونین هر پارامتری که میخواهین (و یا ترکیبی از اونها) رو وارد کنید.

mehrdad1991h
یک شنبه 10 دی 1391, 20:41 عصر
System.Diagnostics.Process.Start(@"C:\...\IDMan.exe", "/s");

توجه کنید که باید آدرس فایل Exe رو کامل وارد کنید من اینجا خلاصه نوشتم. بجای s/ هم میتونین هر پارامتری که میخواهین (و یا ترکیبی از اونها) رو وارد کنید.

ممنون از پاسختون
ولی روش دیگری ایا موجود نیست ؟
با این روش برنامه هنگ میکنه ف خیلی زمان میبره تا این دستور را اجرا کنه
چیز دیگه ای به نظرتون نمیرسه شما با فایل .bat خیلی سریع همین کار انجام میشه چرا !!!

2 سوال دیگه هم دارم که اگر صلاح دونستید جواب بدید
این که چجوری میشه به صورت خودکار ادرس نرم افزار را پیدا کرد ؟

و این که در دانلود منیجر با همون کامند لاین میشه دانلود را شروع کرد ولی نمیشه متوقفش کرد (دستوری براش ننوشته تو سایتش در لینک پست قبلم ادرسش هست) ! پیشنهادی برای این موضوع دارید ؟

سپاس

plus
یک شنبه 10 دی 1391, 21:54 عصر
والا نباید طول بکشه آخه کاری خاصی انجام نمیشه که نیاز به زمان داشته باشه، به هر حال میتونین توی یک Thread دیگه اجراش کنید تا هیچ تاخیری نداشته باشید.
برای بدست آوردن آدرس نرم افزار، بسته به نرم افزار مورد نظر ممکنه بتونید از کلیدی که نرم افزار در رجیستری درست کرده در HKEY_LOCAL_MACHINE\SOFTWARE و یا در HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall و یا استفاده از توابع مربوط به MSI Installer http://msdn.microsoft.com/en-us/library/aa369558(VS.85).aspx#enumerating_products استفاده کنید.

در مورد سوال آخر هم اگه خود نرم افزار این امکان رو نگذاشته راه حل مناسبی به ذهنم نمیرسه.

morteza5358
دوشنبه 11 دی 1391, 16:38 عصر
سلام
برای اجرای دستورات داس میتونید با StreamWriter دستورات رو تو یه فایل با پسوند .Bat بنویسید و اون رو اجرا کنید.