높은 DPI 스케일링을 강제하는 방법은 무엇입니까? 앱에 알려줍니다. 그런

응용 프로그램을 고해상도 DPI로 만들려면 어떻게해야합니까?

  • 개발자가 실제로 그렇지 않은 경우 응용 프로그램이 높은 DPI 인식으로 표시된 것으로 가정합니다. dpi 스케일링을 어떻게 강제 할 수 있습니까?

  • HighDpiAware응용 프로그램이 실제로 없을 때 Microsoft가 ” “호환 심을 적용한 응용 프로그램이 있다고 가정 합니다. dpi 스케일링을 어떻게 강제 할 수 있습니까?

Windows에서 응용 프로그램에 dpi 배율을 적용하도록하려면 어떻게해야합니까?


편집 : 높은 DPI 스케일링이란 무엇입니까?

모든 사용자가 96dpi에서 Windows를 실행하는 것은 아닙니다. 모든 버튼이 75×23 픽셀 인 것은 아니며 모든 툴바의 높이가 25 픽셀 인 것은 아니며 모든 트 리뷰 글리프가 16×16 인 것은 아닙니다. 사용자가 Windows에 대해 다른 dpi 설정을 선택한 경우 모든 것을 적절하게 조정해야합니다.

문제는 높은 DPI 설정을 잘 처리하여 개발자가 거의 작업을 수행하지 않는다는 것입니다. 기껏해야 모든 것이 “동일한 크기”를 유지합니다. 즉, 모든 것이 조그마하게 나타납니다 . 최악의 경우 텍스트가 잘리고 컨트롤이 표시되지 않는 형식이 잘못 배치됩니다.

Windows Vista를 시작으로 Desktop Composition의 강력한 기능을 활용하여 Microsoft는 개발자가 업무를 수행하는 것을 포기하고 이제는 응용 프로그램에 속합니다. 그들은 사용자가 96dpi에서 실행 중임을 앱에 알려줍니다. 그런 다음 Windows는 비디오 카드와 데스크탑 구성을 사용하여 양식을 확장합니다.

찬성 : 폼의 내용은 읽기 좋은 크기가 될 것입니다.
단점 : 모든 것이 약간 흐릿합니다.

이 “높은 DPI 스케일링”기능은 사용자의 판단에 따라 작동하며 다음이 필요합니다.

  • Windows Vista 이상
  • 사용 가능한 데스크톱 구성
  • “Windows XP 스타일 스케일링 사용”을 끄려면
  • 사용자는 응용 프로그램에 대한 스케일링을 비활성화하지 않습니다

개발자는 높은 DPI 스케일링을 거부 할 수 있습니다. 응용 프로그램을 제대로 작성하려고 노력했지만 높은 DPI를 올바르게 처리 할 수 ​​있다는 것을 알고 있다면 실행 파일에 매니페스트 항목을 추가하고 ” 높은 수준의 DPI “를 선언함으로써이 스케일링을 해제 할 수 있습니다 .

응용 프로그램에서 사용자의 기본 설정 (글꼴, 글꼴 크기 및 dpi 설정 포함)을 존중하도록 하는 방법 에 대한 주제 는 의문입니다 stack overflow. ” 높은 DPI 인식 “을 선언하는 매니페스트 항목의 구문도 마찬가지 입니다.

질문은 수퍼 유저 에서 실제로 응용 프로그램 높은 DPI를 인식 하지 못하는 경우 높은 DPI 인식 매니페스트 항목을 추가 한 개발자 를 무시 하는 방법 입니다. 그들은 Windows에게 스케일링을 비활성화하라고 지시했지만 실제로 애플리케이션을 테스트하지는 않았습니다. “높은 DPI 인식”매니페스트 항목 이있는 소프트웨어가 있으며 이제 “큰 글꼴”(예 : 120dpi)에서 응용 프로그램을 사용할 수 없습니다.



답변

흠. 내 제안은 매니페스트를 편집하고 잘못된 선언을 제거하는 것입니다. 그러나 개발자에 대해 버그를 범하는 것을 잊지 마십시오.

편집 : 단순히 매니페스트를 실행 파일 옆에 배치 할 수 있어야합니다 (예 foo.exe:)에 매니페스트를 배치하십시오 foo.exe.manifest. MSDN 문서를 참조 하십시오 ( “파일 이름 구문”섹션 참조).


답변

방금 SetProcessDPIAware에 대한 호출을 연결하고 리디렉션하는 DLL을 출시했습니다. 코드를 통한 DPI 스케일링을 비활성화하는 응용 프로그램의 경우 이진 패치와 비교하여 빠르고 쉬운 수정입니다.

DPIMangler : 블로그 게시물 , 소스 코드 .


답변

매니페스트를 계속 편집 할 수 있지만 .EXE 파일 자체에서 매니페스트를 편집하면됩니다. 매니페스트가 지원되는 리소스 편집기를 찾으십시오. 기본적인 지원이 포함 된 예는 XN Resource Editor입니다.) HIGHDPIAWARE가 언급 된 행을 찾아 삭제하고 실행 파일을 저장하십시오.

그러나 실행 파일을 편집하기 전에 사본을 작성하십시오!


답변

ResizeEnable이 무엇을 찾고 있는지 궁금합니다.

http://www.digitallis.co.uk/pc/ResizeEnable/


답변