【问题标题】:How do I access CMD opened by .batch?如何访问 .batch 打开的 CMD?
【发布时间】:2021-04-01 21:04:50
【问题描述】:

到目前为止我的程序:

using System;
using System.Diagnostics;


const string batDir = @"C:\Program Files (x86)\Microsoft Visual 
                        Studio\2019\Professional\Commom7\Tools";
var process = new Process {StartInfo = {WorkingDirectory = batDir, FileName = "VsDevCmd"}};
process.start();

var modules = process.Modules;
foreach (ProcessModule processModule in modules)
{
  //In here you can find the cmd.exe which gets executed by the .batch
  //For example here you could access the memory address of the cmd prompt
}

我想要做的是访问由我启动的 .batch 文件准备和执行的命令提示符。当您像往常一样向进程发出命令时,它无法检测到它,因为该命令是在 .batch 启动 cmd-Prompt 以识别它之前执行的。

【问题讨论】:

    标签: c# batch-file cmd process


    【解决方案1】:

    要自动附加到现有控制台,必须由附加到该控制台的程序启动控制台程序。

    对于由 GUI 程序启动的程序

    如果一个控制台程序将被赋予一个新的控制台。

    如果是 GUI 程序,它不会获得控制台,但是它可以使用 AttachConsole API 调用来附加到任何控制台。

    编译为控制台程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      • 2021-12-03
      • 2021-08-05
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多