[英]How to use ClickOnce to deploy my C#(4.0)Visual studio 2010 windows form based Application?
[英]How to run AVRDUDE in C# windows form application visual studio 2010
我試圖在Visual Studio 2010的C#應用程序中運行avrdude
,並在RichTextox.
獲取其輸出RichTextox.
這是我的代碼:
void proc_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
string newLine = e.Data.Trim() + Environment.NewLine;
MethodInvoker append = () => txtOutput.Text += newLine;
txtOutput.BeginInvoke(append);
}
}
private void btnAVRDUSR_Click(object sender, EventArgs e)
{
string command = "/c avrdude";
ProcessStartInfo procStartInfo = new ProcessStartInfo("CMD", command);
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.Start();
procStartInfo.CreateNoWindow = true;
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
proc.OutputDataReceived += new DataReceivedEventHandler(proc_OutputDataReceived);
proc.Start();
proc.BeginOutputReadLine();
procStartInfo.CreateNoWindow = true;
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
}
此代碼在RichTextBox
中未顯示任何內容。 現在,我決定使用pin命令。 所以,我替換這條線
string command = "/c avrdude ";
這樣
string command = "/c ping 192.168.1.1";
這次,我的代碼很棒。 因此,誰能告訴我為什么我的avrdude
無法在此代碼中工作。
將avrdude添加到路徑系統變量。 請注意,avrdude將其數據輸出到stderr而不是stdout。 在命令提示符窗口中,這兩個對用戶都是可見的,但是在代碼中,您正在重定向OutputData。 要重定向標准錯誤,請改用ErrorData:
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.ErrorDataReceived += Process_ErrorDataReceived;
process.StartInfo.FileName = "CMD.exe";
process.StartInfo.Arguments = AVRdudeCmd;
process.Start();
process.BeginErrorReadLine();
在ErrorDataReceived函數中,可以使用上面復制的相同代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.