【问题标题】:C# can I add the command prompt control to my appC# 我可以将命令提示符控件添加到我的应用程序吗
【发布时间】:2010-10-21 12:32:35
【问题描述】:

标题说明了这一点。我知道我可以使用 Process 或 ProcessStartInfo 来运行参数,但我的意思是向我的应用程序添加一个命令提示符控件(因为我经常使用它,如果它已经内置它会很方便。

除了编写自定义控件之外,还有其他方法吗?如果不是,我可以忍受它,但它肯定会有所帮助。

【问题讨论】:

    标签: c# controls cmd


    【解决方案1】:

    类似这样的东西(未测试):

    ProccessInfo pi = new ProccessInfo("cmd.exe");
    pi.RedirectStandardError=true;
    pi.RedirectStandardInput=true;
    pi.RedirectStandardOutput=true;
    Process cmd = Process.Start(pi);
    cmd.StandardInput.WriteLine("Dir");
    textBox1.Text = cmd.StandardOutput.ReadToEnd();
    

    注意死锁,那些方法可能会阻塞!

    您也可以使用来自 codeproject.com 的此解决方案:http://www.codeproject.com/KB/miscctrl/commandprompt.aspx

    【讨论】:

      【解决方案2】:

      this question 和相关的。也以this source code 为例。

      您可以在您将控制的 win 应用程序窗口附近启动一个控制台,并可以输出一些数据或从用户那里获取输入。

      【讨论】:

      • 我不会放弃的。使用 AllocConsole() 我可以将控制台控件附加到我的应用程序吗?但它是如何工作的,我该如何使用它呢?
      • @david:AllocConsole() 在主窗体附近创建一个控制台窗口,您可以使用标准Console.WriteLine() 编写它们
      • 我现在有点忙,但我会尽快尝试解决方案,如果可行,请接受您的回答 :)
      • @david:很高兴它有帮助!请投票一下:)
      【解决方案3】:

      在循环中执行 Console.ReadLine()/Console.WriteLine() 有什么问题?这是最有效的方式,您可以完全控制自己在做什么。

      【讨论】:

      • 谁否决了我的回答?我认为这个功能微不足道,为什么要使用其他可能导致问题的库并添加依赖项(cmd.exe 仅适用于 windows,只有在完全信任的情况下才能执行其他可执行文件)。
      • rofl 我得到了一个接受的 -1 答案。不是有专门的徽章吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多