我怎么能把一个进程句柄窗口,但在正常的大小,而不是最大化

本文关键字:最大化 一个 窗口 进程句柄 怎么能 | 更新日期: 2023-09-27 18:02:06

在class的顶部我有:

    [DllImport("USER32.DLL")]
    public static extern bool SetForegroundWindow(IntPtr hWnd);
    [DllImport("User32.dll")]
    private static extern bool ShowWindow(IntPtr handle, int nCmdShow);
    private const int SW_SHOWMAXIMIZED = 3;

在方法中:

public static void BringToFront(IntPtr handle)
        {
            if (handle == IntPtr.Zero)
                return;
            // Maximize window
            ShowWindow(handle, SW_SHOWMAXIMIZED);
            SetForegroundWindow(handle);
        }

但我不想让它最大化,而是正常大小。

编辑

这是工作

在form1:

Process[] processes = Process.GetProcessesByName(processName);
SetProcessWindow.BringToFront(processes[0].Id);
SetProcessWindow.CenterProcessWindow(processes[0].Id);

在课堂上:

public static void BringToFront(int processId)
        {
            Process process = Process.GetProcessById(processId);
            IntPtr handle = process.MainWindowHandle;
            if (handle == IntPtr.Zero)
                return;
            ShowWindow(handle, SW_SHOWNORMAL);
            SetForegroundWindow(handle);
        }

我怎么能把一个进程句柄窗口,但在正常的大小,而不是最大化

使用SW_SHOW = 5代替SW_SHOWMAIXMIZED

顺便说一下,这是我搜索SW_SHOWMAXIMIZED....时的第一个链接得让那些研究人员聪明起来!