我的应用程序启动“C: Windows System32 Msra.Exe”来控制域计算机。 有没有一种方法可以捕获这个msra.Exe显示的错误消息。 (即从msra.exe的内部错误消息,而不是从我的应用程序。)该应用程序本身是一个Windows窗体应用程序。
任何帮助表示赞赏。
启动MSRA的代码在下面…这只是完整应用程序的一小部分。
string msra = "C:\Windows\System32\runas.exe"; string domainname = "**********"; string domaincontroller = "*************"; if (File.Exists(msra) == false) { System.Windows.Forms.MessageBox.Show("Runas.exe not found.nrPlease contact your internal IT support.","Fatal error",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Error); } else { try { Process p = new Process(); p.StartInfo.UseShellExecute = true; p.StartInfo.WindowStyle = ProcessWindowStyle.normal; p.StartInfo.ErrorDialog = true; p.StartInfo.FileName = msra; p.StartInfo.Arguments = "/noprofile /netonly /user:" + domainname + "\" + username + " "cmd /server:" + domaincontroller + " /C msra.exe /offerra " + computerip + """; p.Start(); p.dispose(); Thread.Sleep(1700); SendKeys.SendWait(password); SendKeys.SendWait("{ENTER}"); } catch { System.Windows.Forms.MessageBox.Show("MSRA Could not be started for an unkNown reason"); } }
通过.Net设置Windows进程“评论”?
Windows服务不能在冷启动时启动
如何使用Windows SDK更新“其他时钟”设置
将应用程序更新部署到多个站点
如何从远程计算机获取CommonApplicationData?
有效字幕文本颜色 – 检测变化(在.Net中)
Windows系统时间精确到毫秒级
通过Teamviewer连接时,WPF应用程序崩溃
如何完全卸载Red Gate的.NET Reflector?
您可以将RedirectStandardOutput或RedirectStandardError设置为true ,以便能够从流程的标准输出或错误输出读取。
然后你有几个选择如何实际读取数据:
使用StandardOutput属性
子输出到OutputDataReceived事件并调用BeginoutputReadLine()
或者错误流的相应成员。
您需要http://msdn.microsoft.com/zh-CN/library/system.diagnostics.process.standardoutput.aspx
[更新为指向.net示例]
您正在使用Process,请尝试Process.StandardError属性。 你分配一个流,你将能够使用它。
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standarderror.aspx
而当你在那里,你也可以使用Process.StandardOutput
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。