[multiple-monitors] 내 앱이 실행되는 모니터를 결정하는 것은 무엇입니까?

Windows를 사용하고 있고 두 대의 모니터가 있습니다.

일부 응용 프로그램은 닫았을 때 어디에 있든 상관없이 항상 기본 모니터에서 시작됩니다.

다른 모니터는 내가 닫았을 때 어디에 있든 상관없이 항상 보조 모니터에서 시작됩니다 .

기본적으로 실행되는 모니터 응용 프로그램을 제어하기 위해 조작 할 수있는 레지스트리 설정이 어딘가에 묻혀 있습니까?

@rp : 저는 Ultramon을 가지고 있으며 Microsoft가 그것을 구입하고 OS에 통합해야 할 때까지 Ultramon이 필수적이라는 데 동의합니다. 그러나 말했듯이 프로그램이 시작되는 기본 모니터를 제어 할 수 없습니다.



답변

실행될 때마다 위치를 저장하려는 올바르게 작성된 Windows 앱은 GetWindowPlacement()종료 전의 결과를 저장 한 다음 SetWindowPlacement()시작시 사용 하여 위치를 복원합니다.

종종 앱은 쉽게 사용할 수 있도록 GetWindowPlacement()레지스트리에 결과를 저장합니다 REG_BINARY.

WINDOWPLACEMENT경로는 다른 방법에 비해 많은 이점이 있습니다.

  • 핸들 화면 해상도가 마지막으로 실행 된 이후 변경된 경우 : SetWindowPlacement()자동으로 윈도우가 완전히 오프 스크린되지 않도록한다
  • 상태 (최소화 / 최대화)를 저장하지만 복원 된 (일반) 크기 및 위치도 저장합니다.
  • 데스크탑 메트릭을 올바르게 처리하고 작업 표시 줄 위치 등을 보정합니다 (예 : “화면 좌표”대신 “작업 공간 좌표”사용-화면 좌표 저장에 의존하는 기술은 창이 항상 나타나는 “보행 창”문제로 어려움을 겪을 수 있음) 사용자가 화면 상단에 도구 모음이있는 경우 매번 조금씩 낮 춥니 다).

마지막으로 창 복원을 적절하게 처리하는 프로그램 nCmdShow은 쉘에서 전달 된 매개 변수 를 고려합니다 . 이 매개 변수는 애플리케이션을 시작하는 바로 가기 (일반, 최소화, 최대화)에서 설정됩니다.

if(nCmdShow != SW_SHOWNORMAL)
    placement.showCmd = nCmdShow; //allow shortcut to override

Win32가 아닌 응용 프로그램의 경우 창 위치를 저장 / 복원하는 데 사용하는 방법이 결국 동일한 기본 호출을 사용하는지 확인하는 것이 중요합니다. 그렇지 않으면 Java Swing의 setBounds()/ getBounds()문제 와 같이 많은 추가 코드를 작성하게됩니다. 기능에 이미있는 기능을 다시 구현 WINDOWPLACEMENT합니다.


답변

여기 내가 찾은 것이 있습니다. 기본적으로 보조 모니터에서 앱을 열려면 다음을 수행하십시오.

1. Open the application.
2. Re-size the window so that it is not maximized or minimized.
3. Move the window to the monitor you want it to open on by default.
4. Close the application.  Do not re-size prior to closing.
5. Open the application.
   It should open on the monitor you just moved it to and closed it on.
6. Maximize the window.

이제 애플리케이션이 기본적으로이 모니터에서 열립니다. 다른 모니터로 변경하려면 1-6 단계를 다시 따르십시오.


답변

UltraMon을 받으세요. 빨리.

http://realtimesoft.com/ultramon/

앱이 시작되는 모니터를 지정할 수는 없지만 한 번의 마우스 클릭으로 앱을 다른 모니터로 이동하고 종횡비를 그대로 유지할 수 있습니다. 매우 편리한 유틸리티입니다.

대부분의 프로그램은 마지막으로 남겨둔 곳에서 시작됩니다. 따라서 직장에 두 대의 모니터가 있지만 집에 한 대만 있다면 집에서 노트북을 시작하고 다른 모니터 (현재는 존재하지 않음)에서 실행중인 앱을 볼 수 없습니다. UltrMon을 사용하면 고아 앱을 기본 화면으로 빠르고 쉽게 다시 이동할 수 있습니다.


답변

이 질문에 대한 답은 아니지만 Shift + Win + [left,right] arrow keys지름길 로이 문제를 다루었습니다 . 현재 활성 창을 다른 모니터로 이동할 수 있습니다.


답변

기본 모니터가 기본값이라고 확신합니다. 앱이 적절하게 코딩 된 경우 닫히면 마지막 위치를 기억하고 다시 열릴 것이지만, 아시다시피 기본 동작은 아닙니다.

편집 : 내가 일반적으로하는 방법은 앱의 설정에 위치를 저장하는 것입니다. 로드시 값이 없으면 기본적으로 화면 중앙이됩니다. 양식을 닫을 때 위치를 기록합니다. 이렇게하면 열릴 때마다 마지막 위치에 있습니다. 그러나 처음에 두 번째 모니터에서 자동으로 실행되도록하는 간단한 방법을 모르겠습니다.

-케빈 페어차일드


답변

중요 참고 사항 : 응용 프로그램의 위치를 ​​기억하고 종료 한 다음 해당 위치에서 다시 시작하는 경우 응용 프로그램이 닫힌 동안 사용자의 모니터 구성이 변경되었을 수 있습니다.

예를 들어 노트북 사용자는 디스플레이 구성을 자주 변경합니다. 도킹되면 도킹 해제시 사라지는 두 번째 모니터가있을 수 있습니다. 사용자가 두 번째 모니터에서 실행 중이던 응용 프로그램을 닫고 모니터 연결이 끊어졌을 때 응용 프로그램을 다시 열면 창을 이전 좌표로 복원하면 화면이 완전히 사라집니다.

디스플레이가 실제로 얼마나 큰지 알아 보려면 GetSystemMetrics를 확인하십시오.


답변

그래서 Adobe Reader 9.0에서이 문제가 발생했습니다. 어떻게 든 프로그램이 내 오른쪽 모니터에서 열리는 것을 잊고 왼쪽 모니터에서 일관되게 열렸습니다. 대부분의 프로그램을 사용하면 드래그하여 화면을 최대화 한 다음 닫을 수 있습니다. 음, Adobe를 사용하면 Windows가 다음에 열 화면을 기억하기 위해이를 최대화하기 전에 드래그 한 다음 닫아야했습니다. 올바른 모니터로 설정하면 최대화 할 수 있습니다. 거의 모든 Windows 프로그램이 XP가 기억할 방법을 조작하지 않고 자동으로 기억하기 때문에 이것은 어리석은 일이라고 생각합니다.