windev调用.net库来获取cmd程序的输出

参考[C#]使用Process的StandardInput与StandardOutput写入读取控制台数据 - cnxy - 博客园 (cnblogs.com)   原理是windev反射调用dotnet  程序集     

起因是我在试图用windev20中文版调用paddle。net的c# dll时发现windev20好像对调用这种c++dll的程序集会报错,在windev25中就不会,但是我不喜欢用英文版的windev(有那功夫我都去写vb。net了)

想到如果能获取cmd程序的输出结果,那什么语言写的程序都能和windev20中文版通信了    。看看文档,20中文版原生不支持命令行交互(24  25 正式版可以)

于是参考c#与cmd交互的代码  

 

 

 

windev代码,首先要导入system程序集

// 概要:<运行cmd>
// 语法:
//[ <Result> = ] 运行cmd (<要运行的命令>)
//
// 参数:
//     要运行的命令:<请在这里指出要运行的命令的角色>
// Return Value:
//     UNICODE字符串型:cmd的结果 //     
//
// 例如 :
// 请在此处指出使用的一个示例。
//
过程运行cmd(要运行的命令)
pro  是 Process()
pro.StartInfo.FileName = "cmd.exe"

pro.StartInfo.UseShellExecute = 假
pro.StartInfo.RedirectStandardOutput = 真
pro.StartInfo.RedirectStandardError = 真
pro.StartInfo.RedirectStandardInput = 真
pro.StartInfo.CreateNoWindow = 真
pro.Start()

pro.StandardInput.WriteLine(要运行的命令)
pro.StandardInput.WriteLine("exit")
output是字符串型 = pro.StandardOutput.ReadToEnd();
pro.StandardInput.AutoFlush = 真
pro.WaitForExit();
pro.Close();
发送回  output

 

  演示视频  https://v.douyin.com/Fr24Eow/

 

posted @ 2022-05-03 13:36  kyo413  阅读(140)  评论(0编辑  收藏  举报