出力タイプが「Windowsアプリケーション」に設定されているC#コンソールアプリケーションプロジェクトがあります。これは、プログラムの開始時にコンソールがフラッシュしないようにするためです。
ただし、「/?」を指定してコマンドラインから実行した場合にプログラムの詳細を表示するヘルプコマンドライン引数も許可したいと思います。引数として。
プログラムをWindowsアプリケーションとして通常どおり実行し、help引数が渡された場合にコンソールを表示する方法はありますか?
編集-この質問の回答と同様の回答を読んだ後(この質問は、コンソールアプリケーションの出力タイプで実行していることを前提としています)私はこのソリューションを使用しています。
[DllImport(Kernel32_DllName)]
private static extern bool AllocConsole();
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int SW_HIDE = 0;
const int SW_SHOW = 5;
static void Main(string[] args)
{
if(args.Contains("/?"))
{
AllocConsole();
Console.WriteLine("helpText");
Console.ReadLine();
var handle = GetConsoleWindow();
//Hides console
ShowWindow(handle, SW_HIDE);
}
}
私はあなたが求めている通りに正確に行う方法を見つけていませんが、入力に応じてコンソールを開くことができます。例えば:
class Program
{
private const string Kernel32_DllName = "kernel32.dll";
[DllImport(Kernel32_DllName)]
private static extern bool AllocConsole();
static void Main(string[] args)
{
if (args[0] == "/")
{
AllocConsole();
Console.WriteLine("Details");
Console.ReadKey();
//cases and such for your menu options
}
これにより、プロジェクトの出力タイプがWindowsアプリケーションであっても、runコマンドの後に/を付けて使用できるコンソールが開きます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加