我正在尝试设置我开始使用的进程/应用程序(.exe)的窗口样式/状态
ProcessStartInfo startinfo = someStartInfo //This contains the path of the exe file.
Process process = new Process();
process.Start()
最大化,但并不适用于所有应用程序。
我尝试过设置
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
,我还尝试过使用进程的主窗口句柄并使用 ShowWindow win api 将其设置为最大化,但这似乎并不适用于所有情况:
Process process = new Process();
process.StartInfo = processStartInfo;
process.EnableRaisingEvents = true;
process.Exited += (sender, e) =>
{
RebootMachine();
};
process.Start();
if (process != null)
{
// Maximize the window using ShowWindow
ShowWindowAsync(process.MainWindowHandle, SC_MAXIMIZE);
}
process.WaitForExit();
我也尝试使用类似这样的 mainHandle 以相同的方式使用 SendMessage:
int WM_SIZE = 0x0005;
int SIZE_MAXIMIZED = 2;
SendMessage(process.MainWindowHandle, WM_SIZE, SIZE_MAXIMIZED, 0);
是否有适用于所有类型应用程序的通用解决方案,我当前正在尝试的应用程序是 calc.exe 应用程序。
当我调试过程变量的某些属性时,我也遇到了错误,如果有人可以提供一些关于该问题的见解,将会很有帮助
是否有适用于所有类型应用程序的通用解决方案
一句话,不。
正如您已经发现的,不同的应用程序有不同的行为方式。
WindowStyle
只是一个请求,不是保证。 MainWindowHandle
是通过色调确定的,因此并不总是准确的。
因此,没有一种方法可以 100% 地适用于每种可能的应用程序。