是否可以设置另一个进程的MinimumSize属性'形成? C#

时间:2017-05-06 03:42:28

标签: c# .net winforms

我希望我的程序使另一个进程的主要形式具有最小窗口大小。

我有正确的窗口手柄,并尝试设置窗口的大小,如果它小于我想要的大小, 但这种方式完全闪烁。

MoveWindow()让它闪现太多, SetWindowPos()以及

using System;
using System.Diagnostics;
using System.Windows.Forms;


namespace myProgram
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      foreach (var process in Process.GetProcessesByName("myTarget"))
      {
        var handle = process.MainWindowHandle; // gets all instances of the target game
        // Something like SetWindowProperty(handle, MinimumSize, new Size(500, 500)) would be perfect
        // or: setting the size with
          // MoveWindow() - flashes horribly
          // SetWindowPos() - flashes horribly aswell
          // something else?
      }
    }
  }
}

我想要一个更顺畅,不会闪现或看起来很糟糕的解决方案。

目标程序是一款具有相当大窗口形式的游戏。

1 个答案:

答案 0 :(得分:0)

您正在寻找MoveWindow。看起来像:

[DllImport("user32.dll", SetLastError = true)]
internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool rePaint);

hWnd是您要调整大小的应用程序。