PDA

View Full Version : سوال در مورد اجرای یک برنامه Command Line توسط VB.NET



ali_nob
پنج شنبه 10 تیر 1389, 23:02 عصر
سلام
من یک برنامه اجرایی رو می خواهم توسط VB.NET اجرا کنم که این برنامه بصورت Command Line است و جهت اجرا لازم است ارگومان ها ( پارامتر ) آنرا به برنامه داد ، مثلا در محیط cmd و یا Run اجرا کرد :
File path:\Program.exe -i File.prn -o File.pdf
آیا بهتره که این رو در یک Batch File قرار بدهم و سپس اون رو توسط VB.NET اجرا کنم و یا مستقیما در خود VB.NET این کار رو انجام بدهم من خودم راه دوم رو می پسندم لطفا در خصوص روش دو راهنمایی نمایید
با تشکر

r00tkit
پنج شنبه 10 تیر 1389, 23:35 عصر
روش دوم بهتره (یعنی مستقیم در وی بی )

راهنمایی یعنی چی

دنبال این هستین
Process.Start

ali_nob
جمعه 11 تیر 1389, 07:47 صبح
سلام
متاسفانه نتونستم از Process.Start درست استفاده کنم و جواب نداد

r00tkit
جمعه 11 تیر 1389, 12:39 عصر
مشکل کجاست

fazelm
جمعه 11 تیر 1389, 13:34 عصر
مشکل کجاست

فکر کنم از shell هم بتونی

salehbagheri
جمعه 11 تیر 1389, 13:45 عصر
به کد زیر دقت کنید:

Dim ProcessProperties As New ProcessStartInfo
ProcessProperties.FileName = "notepad"
ProcessProperties.Arguments = "myTextFile.txt"
ProcessProperties.WindowStyle = ProcessWindowStyle.Maximized
Dim myProcess As Process = Process.Start(ProcessProperties)


شما در قسمت Filename نام فایل اجرایی رو قرار میدید و در قسمت Arguments پارامترها رو! در ضمن این روش زمانی عمل میکنه که برنامه اجرایی شما قابلیت دریافت پارامتر رو داشته باشه.

همچنین شما قادرید یه Process رو به صورت Hidden فعال کنید که در بسیاری از برنامه ها از اهمیت قابل توجهی برخورداره:


ProcessProperties.WindowStyle = ProcessWindowStyle.Hidden


اگر هم میخوای در مورد Process ها بیشتر بدونی به این لینک سر بزن:
http://visualbasic.about.com/od/usingvbnet/a/prstrt.htm

fazelm
جمعه 11 تیر 1389, 14:21 عصر
این هم روش خوبیه ولی با دستور shell همه ی اینارو تو یه خط میشه اجرا کرد

salehbagheri
جمعه 11 تیر 1389, 14:34 عصر
این هم روش خوبیه ولی با دستور shell همه ی اینارو تو یه خط میشه اجرا کرد

مشکلی نیست:

System.Diagnostics.Process.Start("notepad", "myTextFile.txt")

ali_nob
جمعه 11 تیر 1389, 16:52 عصر
سلام
ممنون با همون Process.Start جواب گرفتم مشکل در نحوه مسیر دهی و اعمال پارامترها بود
متشکرم

nasseritemp
شنبه 03 مهر 1389, 07:33 صبح
سلام
لطفا در مورد پارامترهای System.Dianostics.process.startهم توضیح بدید.
منظورم username , password هست. البته به شرطی که شبکه workgroup باشه و فایل مورد نظر هم در سمت سرور(یا هرکامپیوتر دیگری) share شده باشه(به جای پارامتر domain چی بنویسیم)

xminxmin
شنبه 03 مهر 1389, 07:53 صبح
یکی از این حالات رو می تونی انجام بدی:



Shell Application.StartupPath & "\Program.exe" ' کنار فایل اجرایی
Shell "F:\Project\Soft\Program.exe" 'مسیری در کامپیوتر
Shell "Notepad.exe" ' برنامه های سیستمی ویندوز


يه روش ديگه:
اجرا کردن یک فایل اجرایی با کدنویسی


System.Diagnostics.Process.Start("Notepad.exe")


چنانچه فایل اجرایی نیاز به آرگومان خط فرمان داشته باشد:


System.Diagnostics.Process.Start("Notepad.exe", "c:\Test.txt")

nasseritemp
شنبه 03 مهر 1389, 10:16 صبح
دوست عزیز منظورمن این بود که اگه فایل مورد نظر تو یه سیستم دیگه ذخیره شده باشه و اون سیستم هم یوزر و pass داشته باشه چطوری میشه اون رو اجرا کرد. در ضمن نوع فایل هم مشخص نیست و شبکه workgroup هست