- 主题:MS自家的截屏例子在某些win10上不work
Desktop Duplication API截屏,宣称是支持win8+
win11测试没问题。在一个虚拟机win10里也没问题。但是在一个win10真机上就是access denied(通过ToDesk远程过去操作的)。
例子代码是这个:
github dot com /microsoft/Windows-classic-samples/tree/main/Samples/DXGIDesktopDuplication
access denied错误跟这个一样:
stackoverflow dot com /questions/46257471/desktop-duplication-screen-capturing-duplicateoutput-returns-e-accessdenied-er
主要就是这个的返回值:
// Create desktop duplication
hr = DxgiOutput1->DuplicateOutput(m_Device, &m_DeskDupl);
官方文档解释:
E_ACCESSDENIED if the application does not have access privilege to the current desktop image. For example, only an application that runs at LOCAL_SYSTEM can access the secure desktop.
但代码里已经设置了desktop了,很奇怪
--
修改:z16166 FROM 114.241.228.*
FROM 114.241.228.*
还是实机试试啊,
是不是有可能截到了todesk的显卡驱动上了,不支持啊
我纯猜的
--
FROM 120.244.216.*
在这机器的设备管理器里没看到todesk有虚拟显卡,只有intel UHD核显一个,AMD独显一个。
不过刚才todesk连过去,复制API的demo又行了,也不需要UAC提权。神奇
要复制的desktop是用OpenInputDesktop(0, FALSE, GENERIC_ALL)打开的,
打印了一下对应的desktop的名字,都是"Default"。
GENERIC_ALL保证权限,不应该再有其他的检查。
【 在 hothail 的大作中提到: 】
: 还是实机试试啊,
: 是不是有可能截到了todesk的显卡驱动上了,不支持啊
: 我纯猜的
--
修改:z16166 FROM 114.241.228.*
FROM 114.241.228.*
搞完了。这次把windows的几种流行的截图方案都搞了一遍,踩了一下坑,有够无聊的
--
修改:z16166 FROM 114.241.228.*
FROM 114.241.228.*