【问题标题】:How Do I Get The Command Console To Write Lines In Windows Forms Application? (Visual c#)如何让命令控制台在 Windows 窗体应用程序中写入行? (视觉 C#)
【发布时间】:2016-06-15 01:23:20
【问题描述】:

基本上我希望用户按下一个按钮,然后控制台将为用户编写所有适当的行。

这是我写的代码:

    private void button6_Click(object sender, EventArgs e)
    {
        Process Cmd = new Process();
        Cmd.StartInfo.FileName = @"C:\windows\system32\cmd.exe";
        Cmd.Start();
        StreamWriter sw = new StreamWriter(@"C:\windows\system32\cmd.exe");
        {
            sw.WriteLine = ("hello");
        }
    }

我尝试了 StreamWriter,但似乎没有合作。

【问题讨论】:

  • 完全不清楚你想做什么。是在执行带参数的命令行程序吗?
  • 我希望命令提示符为用户编写行,所以假设我希望它编写“cd /”来为用户访问另一个字典。
  • @CallumGlennBrankin 检查我的答案
  • 试试this

标签: c# button console command line


【解决方案1】:

你可以这样做

   Process Cmd = new Process();
            Cmd.StartInfo.FileName = @"makecert.exe"; // enter the correct path
            cmd.StartInfo.Argument = "" // pass your aarguemnt
            Cmd.Start();

【讨论】:

  • 我在“sw.WriteLine”下看到一条红线
  • 红线是什么意思??
  • 错误是说“不能分配给'WriteLine',因为它是'方法组'”
  • @CallumGlennBrankin 是的,因为您的问题存在语法错误...。您没有调用 writeline,而是对其进行了评估,并且我复制了相同的代码...我已更正,现在应该可以使用... .
  • @Pikoh 是的..谢谢...已更正
【解决方案2】:

你想要的不能做,因为你需要重定向 StandardInput 来向 cmd 发送命令,当你这样做时,cmd 窗口将关闭。你仍然没有解释你到底想归档什么,但我只能想到两个选择:

  • 创建一个包含您要执行的所有命令的批处理文件,并将其作为参数传递给 Process。
  • 重定向标准输入和标准输出。这样,您应该注意显示所有 cmd 消息。这有点混乱,可能会导致您陷入僵局。

编辑

所以最后,你想要的只是运行一个带有参数的控制台应用程序。这是使用 makecert 的示例:

Process ppp = new Process();
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\makecert.exe";
psi.Arguments = "-n 'CN=TempCA' -r -sv TempCA.pvk TempCA.cer";

ppp.StartInfo = psi;
ppp.Start();

【讨论】:

  • 基本上我想使用控制台创建一个证书,以便使用我的应用程序的用户可以创建他们自己的证书,基本上我需要控制台来创建它自己的证书,为此我需要命令控制台来自己写东西。
  • 我觉得不一样,那么你要做的就是执行一个带参数的.exe。这并不难,你只需要知道exe文件的路径并在Cmd.StartInfo.Arguments中传递你需要的参数
  • @CallumGlennBrankin 查看更新后的答案是否符合您的要求
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
相关资源
最近更新 更多