【问题标题】:capturing a desktop , other then the active one捕获桌面,而不是活动的桌面
【发布时间】:2013-09-30 06:12:38
【问题描述】:

(c/win32)

我使用http://msdn.microsoft.com/en-us/library/windows/desktop/dd183402(v=vs.85).aspx 捕获当前桌面。 他们使用: 获取DC(NULL);

获取正在运行的桌面。 假设我的桌面很少(例如,使用 sysinternal 的 desktop 工具)。 我以为我可以使用OpenDesktop,然后使用GetDC 中的句柄,但它只是给了我一张黑色照片。 是否有其他方法可以捕获当前站中的其他桌面(当然是在当前会话中)?

【问题讨论】:

    标签: winapi screenshot gdi


    【解决方案1】:

    OpenDesktop() 返回 HDESK,但 GetDC() 需要 HWND

    尝试先调用SetThreadDesktop(),使您的线程与目标桌面关联,然后再尝试GetDC(NULL)

    【讨论】:

    • 我试过了。使用sysinternals 工具desktops.exe 我有一个名为Sysinternal Desktop 2". it was opened properly with OpenDesktop()` 的有效桌面,SetThreadDesktop() 返回TRUEGetDC() 返回一个有效的HDC。然而,我得到了一个黑色位图(使用相同的代码在相同的场景下运行良好,无需更改线程的桌面)
    猜你喜欢
    • 2016-03-31
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多