起動時にユーザー操作のない GUI ウィンドウを作成するアプリケーションを自動化しようとしていますが、実際のウィンドウを非表示にする方法がわかりません。
私は ProcessStartInfo を使ってみました:
Process.Start(new ProcessStartInfo {
UseShellExecute = false,
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
// other properties here
});
しかし、ウィンドウはまだ表示されます。
ウィンドウが存在するのをスピン待機してから非表示にすることも試みました。
while (process.MainWindowHandle == IntPtr.Zero) {}
ShowWindowAsync(process.MainWindowHandle, SW_HIDE);
残念ながら、これによりウィンドウが約 1/16 秒ほど点滅します。可能であれば回避したいと思います。
私の現在の考えは、 hookを作成する方向に沿っていますが、どのフックをつかむべきか、またそれが機能するかどうかもわかりません。
任意のヒント?