2010-04-01 2 views
1

У меня есть приложение WPF, в котором есть компонент DirectX. Этот компонент не работает поверх удаленного рабочего стола - он просто показывает поврежденное изображение. Приложение отлично работает, если не используется удаленный рабочий стол.Приложение DirectX не работает над удаленным рабочим столом

При попытке отладки проблемы я установил в феврале 2010 года DirectX SDK. Теперь, когда я запускаю программу на компьютере с SDK и Remote Desktop для нее с отдельного компьютера, компонент работает просто отлично. Однако противоположное не работает - попытка использовать приложение поверх удаленного рабочего стола, когда он запущен на компьютере без DirectX SDK (у него есть оригинальная проблема с поврежденным изображением).

Я уже сравнивал загруженные DLL (используя Process Explorer) между запуском приложения на моем компьютере SDK и не-SDK-машине. Оба они загружают одни и те же версии DLL.

Что еще может быть причиной такого поведения?


EDIT: Я обнаружил, что приложение на самом деле является загрузку другой DLL. Я не заметил, потому что я не правильно записывал список DLL. Когда я запускаю приложение на машине с помощью SDK, он загружает D3DREF9.dll, справочный растеризатор DirectX. Это дает мне представление о том, в чем проблема, хотя я все еще разрабатываю решение.

+0

Как насчет некоторых скриншотов? (Hmm, у stackoverflow есть возможности для этого?) – SamB

+0

Приложение является проприетарным, и я не могу поделиться снимками экрана. SO поддерживает изображения, но вы должны загрузить их на сторонний хостинг. –

ответ

2

Оказалось, что приложение, которое я поддерживал, пыталось создать аппаратное устройство DirectX, и если это не удалось, оно попытается создать ссылочное устройство, и, наконец, если оба из них не удались, он создаст программное обеспечение.

По умолчанию в системах по умолчанию отсутствуют ссылки или программные средства визуализации. Чтобы получить обработчик ссылок, должен быть установлен DirectX SDK, и вы должны использовать его только для отладки, а не для развертывания. Для программного рендеринга системе требуется только .NET 3.5 SP1, а затем программное обеспечение должно загрузить ее.

В основном я считаю, что проблема заключалась в том, что программное обеспечение не смогло правильно создать устройство визуализации. Я очистил код инициализации, и теперь он отлично отображает удаленный рабочий стол. аппаратное ускорение

0

Попробуйте уменьшить параметры отображения производительности/опыта в RemDesk. Я начал бы отключать Bitmap Caching, уменьшая глубину цвета и т. Д.

+0

Я попытался сменить сеанс удаленного рабочего стола на использование 16-битного цвета и отключил кеширование Bitmap, но это не повлияло. –

+0

Попробуйте отключить видео DirectX в свойствах дисплея машины, на которой запущено приложение. Это полезно для таких вещей, как приложения для воспроизведения DVD, которые не могут быть захвачены на экране (иначе вы получите черный прямоугольник). Возможно, та же проблема здесь. –

-1

DirectX отключено дизайном для нативной функции удаленной рабочего стола: http://support.microsoft.com/kb/260565

+0

Это для очень старой версии окон. Это не имеет значения для 2016.если вы используете Windows 2000 – ilansch

Смежные вопросы