我怎么能把一个进程句柄窗口,但在正常的大小,而不是最大化
本文关键字:最大化 一个 窗口 进程句柄 怎么能 | 更新日期: 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....时的第一个链接得让那些研究人员聪明起来!