我正在尝试自动化一个应用程序,该应用程序在启动时创建一个没有用户交互的 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 秒左右,如果可能的话,我想避免它。
我目前的想法是创建一个钩子,但不确定要抓住什么钩子,也不知道它是否会起作用。
有小费吗?