伊莉討論區
標題:
利用C#執行CMD指令
[打印本頁]
作者:
9pk9pk9pk
時間:
2014-12-14 12:58 PM
標題:
利用C#執行CMD指令
有A電腦和B電腦
A、B電腦需要溝通
有可能是從A電腦下指令傳送到B電腦執行
也有可能反之
我想問的是
C#語法該如何使用CMD指令
-
完全沒學過C#突然被丟一個專案
時間也不夠學
突然覺得好殘酷阿 社會
作者:
Jeepluo
時間:
2014-12-17 11:08 PM
應該是用不到用cmd去下指令回應,好記得好像 有函數可以使用,在 vb 有一個 My.Computer.Network.Ping 我想 C# 也應該有,只是手頭目前沒有有裝Visual Studior只能給你線索查查看了。
作者:
Jeepluo
時間:
2014-12-17 11:12 PM
這裡有幾段指令看看是否可行
// args[0] can be an IPaddress or host name.
public static void Main (string[] args)
{
Ping pingSender = new Ping ();
PingOptions options = new PingOptions ();
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options.DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
int timeout = 120;
PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine ("Address: {0}", reply.Address.ToString ());
Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
}
}
複製代碼
Microsoft.VisualBasic.Devices.Network net = new Network();
bool success = net.Ping("填網址");
複製代碼
public bool Ping(host)
{
System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
if (p.Send(host, 500).Status == System.Net.NetworkInformation.IPStatus.Success) {
return true;
} else {
return false;
}
}
複製代碼
作者:
winergogogo
時間:
2014-12-24 11:47 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
wupojung
時間:
2014-12-28 10:23 AM
本帖最後由 wupojung 於 2014-12-28 10:24 AM 編輯
我們來談談傳遞吧...XD
A <-> B 有幾個方式? (先談硬體..)
1) RJ45(網路)跳線直接連 或者 都接到 Hub 上面
2) RS232 將 RX TX 對接....
3) 買一條USB 傳遞線(有晶片的那種 ...其實也是模擬成RS232...) <
我把問題複雜化,通常沒有人這樣搞....>
讓我們來談談軟體怎麼解決?
針對1) 走網路的模式...
你必須建立網路的服務...通常是寫 socket...
但是以現在的技術..你可以讓A 跟B 都是Web Server 然後定時互相通訊... (都上web server了,可以用js' webapi ...任何可以溝通的界面都可以)
針對2) 走ComPort 的方式...
就直接寫 RS232 的 code 就好了..注意那條線 要買對倒是真的...
--------------
還有其他解答方法嗎????
How about MQTT ? (自己google ... eney 不讓我貼網址.. T^T)
其實 MQTT 只是把 socket 包裝好了.....
--------------
你的"問題" 真實的解法是....
兩台 電腦都開SSH 的後台... 然後直接用 telnet 連進去...互相操作...
(不過我想如果是這樣的解法...你應該不會上來問才對....)
為甚麼我這麼說...
用 cmd 命令 讓兩台電腦傳遞資料(你的命令就是資料) 最快的方式 就是登入對方電腦! 然後直接下命令....
所以不是你問題寫錯了...就是我....誤解您的意思了~~
希望對您有幫助...
作者:
q123asdzxc
時間:
2015-2-27 03:59 PM
本帖最後由 arthurliuliu 於 2015-3-19 08:36 AM 編輯
不清楚你的目的是什麼
但如果只是單純只是想用C#語法使用CMD指令
你可以試試這個
public string cmd(string strinput)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true; //不跳出cmd視窗
string strOutput = null;
p.Start();
p.StandardInput.WriteLine(strinput);
p.StandardInput.WriteLine("exit");
strOutput = p.StandardOutput.ReadToEnd();//匯出整個執行過程
p.WaitForExit();
p.Close();
return strOutput;
}
複製代碼
程式碼未依規定包覆,版主代為編輯。
作者:
min721107
時間:
2020-4-15 02:23 PM
可以寫一支service,分別安裝在A電腦和B電腦,透過Socket方式通訊來達到你要的目的
歡迎光臨 伊莉討論區 (http://a04.eyny.com/)
Powered by Discuz!