PDA

View Full Version : سوال: چطور میشه یه فرمان تحت داس را در vb.net اجراکرد؟



kholous
پنج شنبه 03 آذر 1390, 14:56 عصر
چطور میشه یه فرمان تحت داس را مثلاً فرمان ping که توسط shell اجرا میکنیم به جای cmd.exe یه صفحه مثلاً گرافیکی باز بشه و بگه که ارتباط داریم یا خیر ؟
برام خیلی مهمه . خواهش میکنم اگه کسی می دونه جواب بده ...متشکرم:متفکر:

ArashRoshan
پنج شنبه 03 آذر 1390, 22:10 عصر
سلام خیلی راحت هستش :

اول یه تابع به این صورت ایجاد کن :


Function ExecuteDos(ByVal Comm As String)Dim objShell, objExecObject
objShell = CreateObject("WScript.Shell")
objExecObject = objShell.Exec("%comspec% /c " & Comm)
MsgBox(objExecObject.StdOut.ReadAll())

End Function

بعد هر جا خواستی از این دستور استفاده کن :


[VB]ExecuteDos("Ping www.google.com")[/VB (http://www.google.com")[/VB)]
با امید موفقیت .

ArashRoshan
پنج شنبه 03 آذر 1390, 23:59 عصر
در ضمن این روش که من خیلی از اون استفاده کردم بهتر از قبلی جواب می ده ، هر دو خوبن ولی بستگی به کارت داره :

Dim Using_Command as string = "Ping"
Dim Command_Attributes as string ="www.google.com"
Dim psi As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo(Using_Command, Command_Attributes)
psi.UseShellExecute = False

psi.RedirectStandardOutput = True

psi.CreateNoWindow = True
Dim OutPut_String as string
Dim proc As System.Diagnostics.Process = System.Diagnostics.Process.Start(psi)

OutPut_String =proc.StandardOutput.ReadToEnd

msgbox(OutPut_String)

kholous
جمعه 04 آذر 1390, 09:46 صبح
ممنون از راهنمایی تون ، دوست عزیز من دقیقاً می خوام آی پی 20 تا کلاینت را با هم ping بگیرم به طوری که برای هرکدام مثلاً یه مربع کوچیک و زیرهم بازبشه و اگه ارتباط برقرار بود مربع یه رنگ خاص واگه نبود یه رنگ دیگه بشه ( دقیقاً مثل نرم افزار ip monitoring) * متشکرم که حوصله کردی *

ArashRoshan
جمعه 04 آذر 1390, 16:16 عصر
سلام
شما برای اینکار احتیاجی به Ping در cmd نداری . شما بهتره برای این کار از Socket ها استفاده کنی ، برو و در مورد این موضوع تحقیق کن .
من هم اگه وقت کردم ، بیشتر به شما کمک می کنم .

kholous
جمعه 04 آذر 1390, 17:00 عصر
از راهنمایی شما متشکرم ;