另一个应用程序的真正最小化

本文关键字:最小化 应用程序 另一个 | 更新日期: 2023-09-27 18:16:41

我只是想做真正的最小化,所有公共代码都没有以正确的方式最小化!它会最小化,就像图中所示,但不是最小化,比如我点击最小化按钮。我怎么知道的?或者说我能从中得到什么好处?当我按最小化按钮时,它减少了CPU的使用!(这是一个游戏。)

我的代码是:
    [DllImport("User32.Dll", EntryPoint = "PostMessageA", SetLastError = true)]
    public static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
    List<int> ProcIDs = new List<int>();
    private void timer1_Tick(object sender, EventArgs e)
    {
        foreach (Process process in Process.GetProcesses())
        {
            if (process.ProcessName == "League of Legends")
            {
               // MinimizeWindow((IntPtr)hProcess);
                if (!ProcIDs.Contains(process.Id))
                {
                    IntPtr hProcess = GetProcessWindow(process.Id);
                    ProcIDs.Add(process.Id);
                    PostMessage(hProcess, WM_SYSCOMMAND, (IntPtr)SC_MINIMIZE, IntPtr.Zero);
                }
            }
        }
}
    const int WM_SYSCOMMAND = 274;
    const int SC_MINIMIZE = 0xF020;

我也尝试了其他方法,它做同样的,只是最小化显示,但不是真正的最小化!:)

另一个应用程序的真正最小化

你可以试试这个

[DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, WindowShowStyle nCmdShow);

与窗口样式为showminimal = 2,

http://www.pinvoke.net/default.aspx/user32.showwindow