簡體   English   中英

如何創建在另一個窗口中打開“ cmd.exe”的C#應用​​程序?

[英]How to create a C# application that opens “cmd.exe” in another window?

我想做什么

我想創建一個簡單的C#應用​​程序,該應用程序創建一個運行cmd.exeProcess對象(該應用程序的子進程),並在該Shell中執行命令echo "Hello World!" (或我在編譯應用程序之前指定的任何任意字符串)。 C#應用程序在構建和運行時會創建並保持外殼處於以下狀態:

所需的窗口

嘗試

我已經搜索了stackoverflow和MSDN的示例,但是很難找到為ProcessProcessStartInfo設置的正確選項。 我特別嘗試過:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
            startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            startInfo.FileName = "cmd.exe";
            startInfo.Arguments = "echo helloworld!";
            string strCmdText;
            process.StartInfo = startInfo;
            process.Start();
            */


            var proc = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = @"cmd.exe", // iexplorer.exe opened up ie!
                    Arguments = "",
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    CreateNoWindow = false,
                    WorkingDirectory = @"C:\Users\mtran\Desktop\ConsoleApp1", 
                    WindowStyle = ProcessWindowStyle.Normal

                }
            };
            proc.Start();
        }
    }
}

但是第二個cmd窗口(對於子進程)永遠不會出現(如果我設置RedirectStandardOutput = false ),或者子進程的輸出被寫入父進程的cm​​d窗口。

嘗試這個:

Process.Start("cmd.exe", "/k ECHO hello Juan!");

它將啟動命令窗口,執行ECHO語句並保持窗口打開。

如果需要其他配置,請隨時使用ProcessStartInfo實例作為參數。

如果運行cmd /? 在命令提示符下,您可以看到有關開關的其他信息:

/ C執行由字符串指定的命令,然后終止

/ K執行由字符串指定的命令,但仍保留

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM