有没有安全的方法来了解实际窗口是否是Windows控制台?
GetConsoleTitle不起作用,因为标题可以更改。
答案 0 :(得分:0)
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
}
}
}
}
答案 1 :(得分:0)
当您通过CreateProcess
或ShellExecuteEx
函数从程序运行 CMD (或任何基于控制台的程序)时,您将获得其进程ID。与EnumWindows
和GetWindowThreadProcessId
一起使用可找到其控制台窗口。