假设您的第三方应用程序只是一个红色窗口。获得窗口句柄后,有没有直接的方法来改变它的颜色?
答案 0 :(得分: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获取窗口尺寸信息,如下所述:Get A Window's Bounds By Its Handle
避免使用10000的宽度和高度。