有什么安全的方法可以知道实际窗口是否是 Windows 控制台?
GetConsoleTitle 不起作用,因为可以更改标题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Process[] processes = Process.GetProcessesByName("cmd");
foreach (Process p in processes)
{
var window = p.MainWindowHandle;
// Do something
}
}
}
}
当您通过或函数从程序运行CMD(或任何基于控制台的程序)时,您将获得其进程 ID。使用它来查找它的控制台窗口。CreateProcess
ShellExecuteEx
EnumWindows
GetWindowThreadProcessId