我使用此代码检查我的程序是否已打开:
Nelder-Mead
如果程序打开,它会把它带到场上并显示出来。我能怎么做?谢谢。
答案 0 :(得分:2)
您必须导入以下方法:
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
然后你可以这样调用这个方法:
ShowWindow(process.MainWindowHandle, 0);//Hide
ShowWindow(process.MainWindowHandle, 1);//Show
注意:如果窗口最小化,则可以显示该窗口。如果它在另一个窗口的背景中,它就不会显示它。
如果要显示另一个窗口中的窗口,则必须导入此方法:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
然后以与ShowWindow
相同的方式调用它:
SetForegroundWindow(process.MainWindowHandle);
注意:如果没有最小化,您可以设置前景窗口。
您还可以将这两种方法与IsIconic
结合使用,以调用正确的方法:
[DllImport("user32.dll")]
static extern bool IsIconic(IntPtr hWnd);//Returns false if the window is minimized
显示主窗口的完整代码:
static void GotoProcess(Process process)
{
if (IsIconic(process.MainWindowHandle))
{
ShowWindow(process.MainWindowHandle, 1);
}
else
{
SetForegroundWindow(process.MainWindowHandle);
}
}