2016-01-07 2 views
0

У нас есть настольное приложение WinForms, работающее под управлением Windows 7, с рабочим столом размером до 150%. Мы используем Process.Start() для запуска средства просмотра для отображения документов, хранящихся в нашей базе данных. При просмотре фотографии запускается программа Windows Photo Viewer. Когда это происходит, многие из шрифтов приложения изменяются. Особенно пострадали шрифты меню. Я предполагаю, что это связано, как-то с высокой обработкой DPI в библиотеке WinForms. Однако я удивлен, что запуск Windows Photo Viewer приведет к изменению рабочего стола, который повлияет на приложение. Настройки 125% или 175% не имеют этого эффекта.Приложение WinForms, не создающее Windows Photo Viewer, влияет на шрифты в оригинальном приложении

Есть ли способ изолировать наше приложение, когда оно работает от такого воздействия?

ответ

0

Как и вы, наше приложение хранит файлы в нашей базе данных. Когда пользователям необходимо просмотреть файл, программа извлекает его из базы данных и сохраняет его на локальном диске. После сохранения он открывает файл с помощью вызова ShellExecute.

У меня возникла эта же проблема с jpgs, установленным для открытия в Windows Photo Viewer, когда шрифты установлены на более чем 100% в Windows 7. В моих тестах это ТОЛЬКО влияет на вызывающее приложение. При открытии одного и того же jpg из проводника Windows или при запуске приложения приложение не влияет. Запустить.

Основываясь на этом и потратив много часов на поиски решения, я, наконец, остановился на этом «взломе», чтобы решить проблему. Я создал отдельный EXE, который ТОЛЬКО открывает файл, переданный в качестве параметра. Затем я изменил основное приложение, открыв JPG, чтобы запустить этот новый EXE с расположением файла jpg в качестве параметра. Теперь новый EXE - это «оригинальное приложение» вместо моего основного приложения, поэтому основное приложение не затрагивается.

+0

Это звучит как хорошее, простое обходное решение для сложной и запутанной ошибки. – Metro

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

  • Нет связанных вопросов^_^