在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有时候要用别人的程序, 而他的算法都在一个控制台程序里面, 我们没必要知道他的算法细节 只需要结果就行。所以可以在我们的程序里面去执行他的CMD程序 然后获取运算结果就ok。我这里的需求起源于要用一个硬件加密信息,别人写好了一个cmd程序,运行一下就能拿到这个加密后的信息。。。废话少说直接贴代码好了~
string hidPath = @"HID.exe"; try { if (File.Exists(hidPath)) { Process cmd = new Process(); cmd.StartInfo.FileName = hidPath; //将cmd的标准输入和输出全部重定向到.NET的程序里 cmd.StartInfo.UseShellExecute = false; //此处必须为false否则引发异常 cmd.StartInfo.RedirectStandardInput = true; //标准输入 cmd.StartInfo.RedirectStandardOutput = true; //标准输出 //不显示命令行窗口界面 cmd.StartInfo.CreateNoWindow = true; cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; cmd.Start(); //启动进程 //保存文本文件 执行结果保存在里面 saveFileDialog1.ShowDialog(); Stream stream = saveFileDialog1.OpenFile(); byte[] buffer = System.Text.Encoding.Default.GetBytes(cmd.StandardOutput.ReadToEnd()); stream.Write(buffer, 0, buffer.Length); stream.Close(); cmd.WaitForExit();//等待控制台程序执行完成 cmd.Close();//关闭该进程 } else { MessageBox.Show(null, "系统文件遗失,请确保HID.exe文件存放在程序目录下!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Dispose(); } } catch (Exception ex) { Log.WriteErr(ex.ToString()); } |
请发表评论