VNC如何不断重绘窗口?
即使用户处于非活动状态,VNC 如何向窗口发送 REPAINT 消息?
我想在 C Sharp 中实现这一点 - 我查看了 PrintWindow
、SendMessage
方法,但它们都没有实现与 VNC 相同的功能(通过捕获进行测试)图像及其黑色),但使用 VNC 我可以获得完整的图片。
他们使用什么技术来做到这一点?是否可以在 C Sharp 中实现这一点,以使窗口在用户不活动(即 RDP 关闭、最小化或类似)时始终重新绘制甚至。
谢谢大家
How does VNC send REPAINT messages to windows even when a user is not active?
I would like to implement this in C sharp - I've had a look at the PrintWindow
, SendMessage
methods and none of them achieve the same thing as VNC (tested by capturing images and its black) but with VNC I get the full picture.
What techniques are they using to do this and can this be implemented in C sharp to get windows to always repaint even when a user is not active (i.e. RDP is closed, minimised or similar).
Thanks all
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用视频游戏所使用的技术,该技术包括在 CPU 空闲时间期间永久重绘窗口。
我在此处找到了一个 C# 实现。
您只需根据您的需求进行调整即可。
You could use the technique used by video games, which consists in redrawing permanently a window during CPU idle time.
I found a C# implementation here.
You just have to adapt it to your needs.
VNC 不会发送
Windows 发送的 WM_PAINT 消息(并且它不关心用户是否处于活动状态)。另请参阅
是否可以对最小化的应用程序进行屏幕截图
如何获取最小化应用程序的屏幕截图以编程方式?
捕获最小化远程桌面的屏幕截图
VNC does NOT send WM_PAINT messages
Windows does (and it does not care whether a user is active). See also
Is it possible to screenshot a minimized application
How to get the screenshot of a minimized application programmatically?
Capturing screenshots of a minimized remote desktop