获取命令提示符c#

获取命令提示符c#,c#,cmd,C#,Cmd,以下代码在本地计算机上执行.exe文件,并基于同一目录中的.ifc文件生成新文件.obj.obj(新的)和.ifc应该有相同的名称(没有问题) 如果用户再次单击该按钮(代码再次运行),则会出现一个新的cmd,并告诉用户该文件已经存在。他是否要覆盖: (是/否)将是本案的论据 现在我想捕获新的cmd并用“yes/no”窗口替换它,这样用户就不会看到它了。这怎么可能呢?这个问题不是很清楚。为什么不使用布尔值来跟踪用户是否是第一次单击按钮?然后,您可以有条件地向用户显示一个对话框,并从那里开始。我同意

以下代码在本地计算机上执行
.exe
文件,并基于同一目录中的
.ifc
文件生成新文件
.obj
.obj
(新的)和
.ifc
应该有相同的名称(没有问题)

如果用户再次单击该按钮(代码再次运行),则会出现一个新的cmd,并告诉用户该文件已经存在。他是否要覆盖: (是/否)将是本案的论据


现在我想捕获新的cmd并用“yes/no”窗口替换它,这样用户就不会看到它了。这怎么可能呢?

这个问题不是很清楚。为什么不使用布尔值来跟踪用户是否是第一次单击按钮?然后,您可以有条件地向用户显示一个对话框,并从那里开始。我同意这并不清楚。您能否提供您所看到内容的屏幕/窗口捕获?(听起来好像是命令行exe显示了y/n提示符)我的建议是,如果文件名可以事先知道(或作为参数提供给.exe),那么在调用进程之前,只需在C#中检查它。问题很清楚。他在一段C#代码中多次运行同一个.exe,每次该.exe创建同一个文件。因此,可执行文件将挂起Y/N提示符以进行覆盖。因此,该.exe很可能是一个命令行应用程序。如果该.exe在其创建的文件已经存在时挂起Y/N提示,则仅在C#中提示用户不会阻止挂起的发生。假设OP没有访问.exe源的权限,则您需要通过输入流向.exe发送“Y/N”,或者,如果用户选择覆盖.exe,您可以在调用.exe之前先删除原始文件(避免.exe中的Y/N提示)。
if (clicked) {
  Process p = new Process();
  p.StartInfo.FileName = "cmd.exe";

  p.StartInfo.WorkingDirectory = "C:\...";

  string arg1;

  arg1 = "@/c  command" // run .exe appliaction

  p.StartInfo.Arguments = arg1;

  p.Start();

  p.StartInfo.CreateNoWindow = true;

  p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

  p.WaitForExit();
}