2

ただの赤いウィンドウであるサードパーティのアプリケーションがあるとします。ウィンドウハンドルを取得したら、その色を変更する簡単な方法はありますか?

4

1 に答える 1

2

これまでに思いついたのは、使用することですGraphics.FillRectangle

Graphics g = Graphics.FromHwnd(handle);
g.FillRectangle(Brushes.Green, new Rectangle(0, 0, 10000, 10000));   

完全な winform の動作例:

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

        private void button1_Click(object sender, EventArgs e)
        {
            foreach (var p in Process.GetProcesses())
            {
                if (p.MainWindowTitle.Contains("Window Name"))
                {
                     IntPtr handle = p.MainWindowHandle;
                    if ((int)handle != 0)
                    {
                        Graphics g = Graphics.FromHwnd(handle);
                        g.FillRectangle(Brushes.Green, new Rectangle(0, 0, 10000, 10000));
                    }

                }
            }
        }
    }  

ここで説明されているように、 GetWindowRectを使用してウィンドウ サイズ情報を取得することもできます: 幅と高さに 10000 を使用しないように、そのハンドルでウィンドウの境界を取得します。

于 2012-11-16T00:58:02.980 に答える