最大化/最小化其他应用程序

时间:2016-04-22 08:27:43

标签: c# error-handling windows-applications minimize maximize

自从我做了任何节目以来已经有一段时间了。我正在研究代码以最大化和最小化其他应用程序。所以我找到了一些基本的东西,这就是我所拥有的东西,稍微修改了一下。它希望我生成一些我做过的FindWindow方法。现在一切都很好看,我试着运行它,收到消息。不知道从哪里开始。我发现它的原始帖子没有提到这一点。

enter image description here

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);
static void Main(string[] args)
{
    // retrieve Notepad main window handle
    IntPtr hWnd = FindWindow("Notepad", "Untitled - Notepad");
    if (!hWnd.Equals(IntPtr.Zero))
    {
        // SW_SHOWMAXIMIZED to maximize the window
        // SW_SHOWMINIMIZED to minimize the window
        // SW_SHOWNORMAL to make the window be normal size
        ShowWindowAsync(hWnd, SW_SHOWMAXIMIZED);
    }
}

private static IntPtr FindWindow(string p, string p_2)
{
    throw new NotImplementedException();
}

1 个答案:

答案 0 :(得分:1)

首先,使用方法FindWindow(),当一个方法有一个throw时,你需要在调用它的方法中捕获它Main()

现在NotImplementedException是一个类,在这里我发布了继承层次结构

  1. System.Object的
  2. System.Exception的
  3. System.SystemException
  4. System.NotImplementedException
  5. 如说错误,你只需要实现方法并删除de line:`throw new NotImplementedException();

    最后我发布了一个实现选项,只需要窗口应用程序中的标题。

    public static IntPtr FindWindow(string titleName)
        {
            Process[] pros = Process.GetProcesses(".");
            foreach (Process p in pros)
                if (p.MainWindowTitle.ToUpper().Contains(titleName.ToUpper()))
                    return p.MainWindowHandle;
            return new IntPtr();
        }
    

    顺便说一句,here是关于最大化/最小化其他应用程序的另一个问题