0

几个星期以来,我一直在浏览论坛、谷歌和任何其他我能找到的地方,但到目前为止我找不到我的答案。我不是编码专家,我只是为了好玩而做,虽然我比任何事情都感到沮丧,但它仍然让我很忙,但我遇到了一个我无法解决的问题,那就是如何捕获光标位置或屏幕没有我的表格?

我尝试过的事情:

方法一

AllowTransparency = true;
TransparencyKey = Color.Empty;
Opacity = 99;

为此,它需要禁用航空功能,这不好,也不是我想要的应用程序

方法二:

Opacity = 0;
doCapture();
Opacity = 100;

当计时器间隔设置为 100 或任何间隔时,这会导致闪烁

方法三:

Hide();
doCapture();
Show();

这会导致与上面相同的闪烁

所有方法都在这个网站上找到了 对 表格后面的屏幕截图? 如何在没有表单的情况下捕获屏幕? 在 C# 中捕获屏幕但不是当前形式?

方法 4:使用 magnifyer.dll 这会导致随机黑色捕获,并且有问题无法使其完全工作,最好发布有关该 API 的另一个问题。

顺便说一句,我正在使用 MS Visual C# 2010 express 运行 windows 7 64 位

到目前为止,最好的工作方法是第一种,但不希望必须使用它,因为需要禁用 aero 并在禁用和启用时使整个屏幕闪烁。

是否有或是否有办法在重绘表单之前捕获 WM_PAINT 消息或其他消息的消息 截取屏幕截图然后让表单重绘?如果是这样的话,有人可以为我指出正确的方向或提供一些代码来说明如何去做,因为这超出了我对如何去做和去做的理解,我可以捕获 WM_PAINT 和 WM_ERASEBKGND 消息,但我不确定该怎么做或者从那里到哪里去任何地方都会很感激

谢谢

斯科特。

4

0 回答 0