怎么通过API获取当前桌面所显示的内容

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:41:55
我想写个类似于QQ远程协助这样的程序。。。
但怎么获取对方当前桌面上的内容。。。
有c#代码就更好了。。。
先谢谢了

QQ远程协助和Microsoft 远程桌面连接、以及Remote Admin的远程桌面,实现的方法都是截屏》发送》还原。

也就是说,每隔一段时间就截取当前屏幕,然后发送到另一台计算机显示,看起来就好像是直接连接了对方的桌面。

至于远程连接之后的远程控制功能,则是在本地截取了鼠标按下的位置、按下的键和按下次数之类的信息,发送到远程主机,然后由远程主机端程序用API或其他方式模拟出相应的鼠标、键盘消息。

所以,只要截屏就可以了,API的话,用BitBlt就可以

函数原型:BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop);

BitBlt函数需要的HDC变量,可以通过GetDC函数得到

函数原型:HDC GetDC(HWND hWnd);

调用GetDC函数传入桌面句柄0,就可以拿到桌面DC,然后调用BitBlt复制桌面图像并保存成数据流或中间文件,再发送到远程主机就可以了。

如果你还有疑问,请补充问题