実際のウィンドウが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