opc*_*0de 3 windows delphi winapi screenshot
我正在使用createdesktop api创建一个桌面,我想截取屏幕截图或发送输入鼠标/键盘,而不会将桌面显示给用户.如何实现这一点的任何想法?
我发现的简短答案是你不能.您无法截取非活动桌面的屏幕截图,因为没有可见的绘图,因为没有可见的窗口可以重绘.
您可以执行SwitchDesktop()调用,屏幕截图,然后返回SwitchDesktop().用户不会注意到它,但你可能不会在屏幕截图中获得太多,因为在这么短的时间内窗口没有时间重绘.
另一件事是,你必须创建一个新线程来调用SetThreadDesktop().如果使用主线程执行此操作,则在使用GUI应用程序时将失败.当前桌面中有一个窗口时,SetThreadDesktop()会失败.
SysInternals有一个管理多个桌面的应用程序(如Linux桌面交换机).当您即将选择要切换到桌面的桌面时,将显示桌面的缩略图.此缩略图不是实时的,当用户在该桌面中时,它会被上次已知的完全重绘捕获.简而言之,如果SysInternals无法进行实时截图,我怀疑我们中的任何人都会.
这当然是基于我对这个确切特征的研究.如果有人真的让它上班,我很想知道所以我也不能用它!
| 归档时间: |
|
| 查看次数: |
3646 次 |
| 最近记录: |