gpt4 book ai didi

c# - 在没有屏幕卡住的情况下截取屏幕截图。 C# 和 Windows XP

转载 作者:可可西里 更新时间:2023-11-01 11:40:31 28 4
gpt4 key购买 nike

我正在使用 C# .NET 截取第二台显示器的内容并将其显示在主屏幕的窗口中。

我的代码是:

screenShotGraphics.CopyFromScreen(
Screen.AllScreens[screen].Bounds.X,
Screen.AllScreens[screen].Bounds.Y,
0,
0,
Screen.AllScreens[screen].Bounds.Size,
CopyPixelOperation.SourceCopy);

当它由单击按钮触发时效果很好,因为轻微的延迟并不明显,但是当它自动运行时(比如每隔几秒),用户可以很容易地注意到他们的鼠标“锁定”了一些秒。

显然这并不理想。那么有没有更快的方法来执行这个操作呢? (或者在不中断鼠标移动或交互的情况下执行它的方法?

最佳答案

您可以尝试使用 BackgroundWorker 执行屏幕截图控制,这是在单独的线程上运行函数的简单方法。只需在 BackgroundWorker 的 DoWork 事件中调用您的屏幕截图功能,无论何时您想要运行您的功能,只需调用:

你的BackgroundWorker.RunWorkerAsync()

编辑:它可能正在这样做,所以屏幕上移动的任何东西(如鼠标)都不会模糊屏幕截图。您可以尝试将屏幕分解成更小的部分并截取屏幕截图,然后将它们拼接在一起。这将使鼠标在每个部分屏幕截图之间自由移动,因为您在一个单独的线程上,但它冒着屏幕上发生变化的风险(取决于实际需要多长时间)

关于c# - 在没有屏幕卡住的情况下截取屏幕截图。 C# 和 Windows XP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2146806/

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