调整窗口大小C#

是否可以从另一个应用程序中调整正在运行的应用程序的窗口大小? 我希望当我正在构建的应用程序启动时,另一个应用程序(比如itunes)的宽度减少到2/3,以便剩余的1/3被我的应用程序占用。 这两个应用程序应该完全运行并且可由用户访问。 请尽可能帮助。

您可以使用SetWindowPos调整其他进程窗口的大小。

  [DllImport("user32.dll")] private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int width, int height, uint uFlags); private const uint SHOWWINDOW = 0x0040; private void resizeItunes() { System.Diagnostics.Process[] itunesProcesses = System.Diagnostics.Process.GetProcessesByName("iTunes"); if (itunesProcesses.Length > 0) { SetWindowPos(itunesProcesses[0].MainWindowHandle, this.Handle, 0, 0, Screen.GetWorkingArea(this).Width * 2 / 3, Screen.GetWorkingArea(this).Height, SHOWWINDOW); } } 

您需要获取Windows的句柄,因此请使用http://msdn.microsoft.com/en-us/library/ms633499(VS.85).aspx上的FindWindow函数,然后使用SendMessage将句柄传递给窗口。

您需要在http://msdn.microsoft.com/en-us/library/ms644950.aspx或PostMessage上发送SendMessage , url为http://msdn.microsoft.com/en-us/library/ms644944(VS.85)。 aspx与WM_SIZE(0x0005)并指定大小。