gpt4 book ai didi

c# - Windows 窗体整个屏幕的屏幕截图,调用窗口除外?

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:22 25 4
gpt4 key购买 nike

为了迎接挑战,我决定编写一个应用程序来仅放大屏幕的特定部分(在鼠标下方,在鼠标之后)。我能想到的最好的方法是截取表格下方的空间,放大并在表格上绘画。我正在使用这部分代码在计时器内拍摄照片:

timer1.Stop();
//Reposition window
this.Left = Cursor.Position.X - this.Width / 2;
this.Top = Cursor.Position.Y - this.Height / 2;
//Bitmap to save image to
Bitmap bmpScreenshot = new Bitmap(this.Width, this.Height, PixelFormat.Format32bppArgb);
Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot);
//Grab section of screen shot
this.Opacity = 0.01;
gfxScreenshot.CopyFromScreen(this.Left, this.Top, 0, 0, this.Size, CopyPixelOperation.SourceCopy);
this.Opacity = 1;
//Save to class level so Paint can paint it
frame = bmpScreenshot;
//Make Double Buffered Panel repaint
dbPanel1.Invalidate();
timer1.Start();

为了让桌面(或任何存在的窗口/内容)位于表单下方,我将它的不透明度设置为 0.01(这样它仍然可以点击,点击关闭应用程序。绝对 0 不可点击)在拍摄之前图片,然后在拍摄快照后 1...这会产生闪烁。有没有一种方法可以在不更改不透明度或隐藏/显示表单的情况下获取表单下内容的位图?我想要表单下内容的实时图像,而不仅仅是应用程序启动时间的快照。

我不是在寻找其他应用程序来做这件事,我正在研究这个,所以当我处理这些问题时,我可以学习一个解决方案。我已经尝试更改不透明度(到各种级别),在窗口上使用显示和隐藏、SetVisibleCore(bool),但没有任何方法可以将闪烁降低到可接受的级别。有什么想法吗?

最佳答案

我认为您最好不要显示放大图像与光标的偏移量(例如,查看 iPhone 文本选择/编辑界面),并为屏幕边缘添加一些智能处理。这样您就不必不断改变不透明度,只需更新图像和/或表单的位置即可。

关于c# - Windows 窗体整个屏幕的屏幕截图,调用窗口除外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com