我正在尝试创建一个连续制作大量屏幕截图的程序。我不想一遍又一遍地重新创建屏幕截图,我只想找到屏幕之间的变化。
为此,我在屏幕级别使用了 GetUpdateRect() 方法。不幸的是,它没有给我正确的数据。由于我对 C# 比较陌生,所以我确定我做错了什么:P
此代码应记录所有屏幕更改,但它返回 [0,0,0,0]:
[DllImport("User32.dll")]
public static extern IntPtr GetDesktopWindow();
[DllImport("User32.dll")]
public static extern bool GetUpdateRect(IntPtr hWnd, out Rectangle lpRect, bool bErase);
static void Main()
{
Rectangle updateRect;
GetUpdateRect(GetDesktopWindow(), out updateRect, false);
while (true)
{
Thread.Sleep(100);
Console.WriteLine(updateRect);
}
}
非常感谢所有帮助!:D