如何恢复只有其句柄的最小化窗口

本文关键字:句柄 最小化 窗口 何恢复 恢复 | 更新日期: 2023-09-27 18:06:26

Process[] procs = Process.GetProcesses();
IntPtr hWnd;
foreach (Process proc in procs)
{
    if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
    {
        Debug.WriteLine("{0} : {1}", proc.ProcessName, hWnd);
    }
}

我的问题是,我如何才能恢复最小化的窗口有它的句柄(hWnd变量)。

如果您还能提供一些窗口处理程序的文档,以便我了解如何操作它们,我将不胜感激。

如何恢复只有其句柄的最小化窗口

除非您在同一个应用程序域中,否则您将不得不使用非托管API来完成此操作。

private const int SW_SHOWNORMAL = 1;
private const int SW_SHOWMINIMIZED = 2;
private const int SW_SHOWMAXIMIZED = 3;
[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
private void restoreWindow(IntPtr hWnd)
{
    if (!hWnd.Equals(IntPtr.Zero))
    {
        ShowWindowAsync(hWnd, SW_SHOWMAXIMIZED);
    }
}

https://msdn.microsoft.com/en-us/library/ms633549 (VS.85) . aspx