2010-04-01 132 views
1

我有一個WPF應用程序,其中有一個DirectX組件。此組件無法通過遠程桌面工作 - 它只是顯示損壞的圖像。當不使用遠程桌面時,應用程序正常工作。DirectX應用程序無法通過遠程桌面工作

在試圖調試問題時,我安裝了2010年2月的DirectX SDK。現在,當我在計算機上使用SDK和遠程桌面在另一臺計算機上運行程序時,該組件工作得很好。然而,相反不起作用 - 嘗試通過遠程桌面在計算機上運行應用程序而不是 DirectX SDK(它具有損壞的圖像的原始問題)。

我已經在我的SDK機器和非SDK機器上運行應用程序之間比較了加載的DLL(使用Process Explorer)。他們都加載相同的DLL版本。

還有什麼可能導致此行爲?


編輯:我發現,其實應用程序加載不同的DLL。我沒有注意到,因爲我沒有正確捕獲DLL列表。當我使用SDK在機器上運行應用程序時,它會加載D3DREF9.dll,即DirectX參考光柵器。這讓我知道問題出在哪裏,儘管我仍在制定解決方案。

+0

怎麼樣截圖? (嗯,stackoverflow有設施嗎?) – SamB 2010-04-01 19:55:35

+0

該應用程序是專有的,我不能共享屏幕截圖。 SO確實支持圖片,但您必須將其上傳到第三方託管服務。 – 2010-04-01 20:02:27

回答

2

事實證明,我正在維護的應用程序試圖創建DirectX硬件設備,如果失敗,它會試圖創建一個Reference設備,最後,如果這兩個都失敗了,它會創建一個Software設備。

默認情況下,系統上沒有可用的參考或軟件渲染器。要獲得參考渲染器,必須安裝DirectX SDK - 並且只能將其用於調試而不是部署。對於軟件渲染器,系統只需要.NET 3.5 SP1,然後軟件必須加載它。

基本上我認爲問題在於軟件未能正確創建渲染設備。我已經清理了初始化代碼,現在它在遠程桌面上渲染就好了。

0

嘗試降低RemDesk中的性能/體驗顯示選項。我開始關閉位圖緩存,減少顏色深度等。

+0

我試着改變遠程桌面會話使用16位顏色並關閉位圖緩存,但它沒有什麼區別。 – 2010-04-01 19:40:29

+0

嘗試在運行應用程序的機器的顯示屬性中禁用DirectX視頻。這對於無法屏幕捕捉的DVD播放應用程序非常有用(否則您會看到一個黑色的矩形)。也許這裏是同樣的問題。 – 2010-04-01 19:55:24

-1

的DirectX硬件加速設計禁用對本地遠程桌面功能:http://support.microsoft.com/kb/260565

+0

這是一個非常舊的Windows版本。它與2016年無關。除非你使用的是Windows 2000 – ilansch 2016-04-06 14:40:36