繁体   English   中英

抓取 Windows 10 放大镜工具“背后”的屏幕像素数据

[英]Grab screen pixel data "behind" the Windows 10 magnifier tool

我想知道当 windows 放大镜工具在全屏模式下运行时是否可以捕获屏幕的整个视图。 从本质上讲,我正在寻找的是,当我用眼睛看屏幕上的某个点时,只有屏幕的某个点显示在我的显示器上,我希望能够打印屏幕的全部没有关闭放大镜的原始屏幕。 不知道如何比这更好更清楚地表达它。 我知道可以通过Graphics类获取屏幕像素信息,如下所示:

this.graphics.Clear(Color.Black);
this.graphics.CopyFromScreen(pictureBoxPoint.X, pictureBoxPoint.Y, 0, 0, size);

但这并不排除放大镜对屏幕的影响,只会在用户看到时抓取它。 理想情况下,我希望能够抓取整个屏幕,因为如果放大镜工具没有仅放大一部分,那么应该可以看到它,如果这是有道理的。 整个屏幕空间,即使只有一部分可见。

我快速浏览了放大 API文档页面,但我不知道这是否真的是我应该查看的地方。 还有什么我可以做的吗? 如果有人指出我正确的方向,我会很感激,因为我似乎在兜圈子。

非常感谢!

查看 github 项目karna-magnification ,这将允许您将一个 windows 窗体对象放入视图门户并放大光标下的任何内容。 要捕获放大倍数,您只需要捕获表单的内容。 引用 github 项目后,在要用作放大镜视图面板的表单的构造函数中,添加

using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Magnifier mg = new Magnifier(this);
        }
    }
}

从那里添加代码以使用表单的图形上下文来捕获图像。 那部分我会留给你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM