ファイル名がWindows実行可能ファイルを指しているときにCreateNoWindow=falseがまったく何もしない場合、winformアプリのソースコードにアクセスできる場合は、デフォルトの表示を制御するコマンドライン引数を指定できる可能性があることに気付きました。フォームを作成し、Winformアプリの起動コードで次のようにします。
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 form1 = new Form1();
form1.Load += new EventHandler((s,o) =>
{
//check if the form should be shown based on command line arg
if (args.Contains("dontShowWindow"))
{
//hide it
form1.ShowInTaskbar = false;
form1.Visible = form1.ShowInTaskbar = false;
}
}
);
Application.Run(form1);
}
コードを呼び出す際に、プロセス引数として「dontShowWindow」を指定できるようになりました。
ProcessStartInfo info = new ProcessStartInfo
{
CreateNoWindow = false,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
FileName = @"C:\temp\testWinForm.exe",
Arguments = "dontShowWindow"
};
Process.Start(info);
お役に立てれば