2014-05-08 68 views
-1

我試圖從Windows服務捕獲桌面屏幕截圖。由於大多數在線提示的地方,由於來自Windows的會話隔離功能,很難捕獲屏幕。由於好奇心,我嘗試了交互式服務標誌,更改帳戶類型,移動到安全位置,獲取Windows工作站的處理,桌面並將它們設置爲線程等,但沒有任何工作,每次訪問被拒絕。從服務中獲取屏幕截圖對我來說是絕對需要的。DirectX從Windows服務捕獲屏幕

所以,另一個想法是爲什麼不只是從服務輪詢幀緩衝區或視頻緩衝區來給出副本?這樣我們就不必擔心這些會話牆,隔離,安全等等。考慮到這一點,我認爲DirectX會是更好的選擇,因爲它與硬件有良好的關係。

但是之後,我在DirectX中完成了零線編程。如果DirectX可以幫助完成此操作,有人可以幫助我解決一些問題嗎?如果其他情況下其他驅動程序API可以幫助獲取視頻緩衝存儲器。

+0

不需要DirectX。看看我們如何解決它:https://stackoverflow.com/a/45095509/125406 –

回答

0

我也試圖從Windows服務做一些DirectX渲染,但它看起來像會話0隔離阻止訪問硬件,我們不能做基於硬件的DirectX渲染。檢查thisthis

+0

是的,你是對的。它不可能訪問它們。我試着用diretx截圖做一些飛行員。在用戶桌面它工作正常。當我轉移到Windows服務時,它開始返回'NULL'句柄。我的帖子[http://social.msdn.microsoft.com/Forums/vstudio/en-US/e962ac30-540f-48c3-ab4a-d14145b085b6/directx-to-capture-screen-from-windows-service?forum=vcgeneral msdn中的#89eb6999-e30e-4293-b2df-43452c907413]得到了相似的答案。看來我們必須改變架構。 –