2008-09-09 3 views
72

저는 Windows를 사용하고 있으며 두 대의 모니터가 있습니다.내 앱이 실행되는 모니터를 결정하는 요인은 무엇입니까?

일부 응용 프로그램은 항상이 내 기본 모니터에서 시작됩니다 (닫은 위치에 관계없이).

기타는 항상 내가 닫은 위치에 관계없이 보조 모니터에서 시작됩니다.

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

@rp : 저는 Ultramon을 보유하고 있습니다. Microsoft가 Ultramon을 구입하여 OS에 통합해야한다는 점에서 필자는 Ultramon이 반드시 필요하다는 데 동의합니다. 하지만 말했듯이, 프로그램이 시작되는 기본 모니터를 제어 할 수는 없습니다.

+2

Ultramon은 필수 유틸리티입니다. 나는 수년간 그것을 사용 해왔다. – AMissico

+0

트래픽이 많은이 질문은 Ultramon의 광고처럼 보입니다. DisplayFusion도 언급되어야합니다. 나는 회사와 관련이 없으며 단지 제품이 나를 위해 무엇을하는지 좋아합니다. 세 번째로 잘 알려진 것은 "실제 다중 모니터"입니다. – zx81

+1

@ zx81 : '08에이 글을 쓸 때 윈도우 XP가있었습니다. UltraMon은 유용했지만 최근 버전의 Windows에서는이를 보증 할 수 없습니다. – JosephStyons

답변

38

실행을 위해 자신의 위치를 ​​저장하려는 Windows 응용 프로그램은 종료하기 전에 GetWindowPlacement()의 결과를 저장 한 다음 시작시 SetWindowPlacement()을 사용하여 위치를 복원합니다.

자주 응용 프로그램은 GetWindowPlacement()의 결과를 REG_BINARY으로 저장하여 쉽게 사용할 수 있습니다.SetWindowPlacement() 자동으로 창이

  • 오프 스크린 전체가 아닌지 확인합니다 상태를 저장 :

    • 화면 해상도가 마지막으로 실행 된 이후 변경된 경우를 처리합니다 :

      WINDOWPLACEMENT 노선은 다른 방법에 비해 많은 장점을 가지고

    • 작업 표시 줄 위치 등을 보완하여 데스크톱 메트릭을 올바르게 처리합니다. 즉, "화면 좌표"대신 "작업 영역 좌표"를 사용합니다 (즉, 최소화/최대화). 화면 저장 중 좌표는 사용자가 화면 상단에 툴바가있는 경우 항상 윈도우가 조금씩 낮아지는 "워킹 윈도우"문제로 어려움을 겪을 수 있습니다.

    마지막으로 창 복원을 올바르게 처리하는 프로그램은 쉘에서 전달 된 nCmdShow 매개 변수를 고려합니다. 이 매개 변수는 (최대화 최소화 일반) 응용 프로그램을 시작하는 바로 가기에 설정 : 비 Win32 응용 프로그램에 대한

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

    , 당신이 저장하는 데 사용하는 방법은/창 위치를 복원해야하는 것이 중요합니다 결국 동일한 기본 호출을 사용합니다. 그렇지 않으면 (Java Swing의 setBounds()/getBounds() 문제와 같이) WINDOWPLACEMENT 함수에 이미있는 기능을 다시 구현하기 위해 많은 추가 코드를 작성하게됩니다.

  • +0

    좋은 답변 주셔서 감사합니다. 이 정보를 사용하여 최소한 내가 원하는 경우 특정 장소에서 실행되도록 일부 프로그램을 수동으로 설정할 수 있습니다. – JosephStyons

    +0

    또한 SetWindowPlacement()는 해당 위치가 실제로 있는지 확인해야합니다.일반적인 시나리오는 랩톱을 듀얼 모니터에 연결 한 상태에서 잠자기 상태로 만든 다음 나중에 하나만 켜서 가상 화면 공간이 극적으로 작은 경우입니다. – JosephStyons

    4

    기본 모니터가 기본 모니터라고 확신합니다. 앱이 제대로 코딩 되었으면 앱이 종료되었을 때 마지막 앱의 위치를 ​​기억하고 거기에서 다시 열립니다. 그러나 눈치 챘을 때 기본 동작은 아닙니다.

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

    - 케빈 페어차일드는

    0

    이 저를 주저하지 마세요 그러나 나는 응용 프로그램이 자체에 의존 확신합니다. 나는 항상 많은 사람들이 메인 모니터에서 열리는 것을 알고 있으며, 어떤 사람들은 이전에 실행되었던 동일한 모니터로 다시 열릴 것이고 어떤 것은 설정할 수 있습니다. 예를 들어, 특정 디렉토리에 대한 명령 창을 여는 지름길이 있으며, 각 창에는 해당 속성의 위치에서 창을 여는 옵션이 있습니다. Outlook은 기억하고 마지막 화면에서 열립니다. 그런 다음 다른 응용 프로그램 현재 포커스가있는 창을 열어 두십시오.

    그래서 모든 프로그램을 열어 볼 수있는 방법이 있는지 확신하지 못합니다. 희망이 일부 도움이됩니다.

    10

    UltraMon 가져 오기. 빨리.

    http://realtimesoft.com/ultramon/

    그것은 앱가 시작 모니터링을 지정하지 않지만, 하나의 마우스 클릭으로, 당신은 다른 모니터에 응용 프로그램을 이동하고 그대로 가로 세로 비율을 유지 할 수 있습니다. 그것은 매우 편리한 유틸리티입니다.

    대부분의 프로그램은 마지막으로 남은 곳에서부터 시작됩니다. 그래서 집에 두 대의 모니터가 있지만 가정에서는 하나 뿐인 경우 집에서 랩톱을 시작하고 다른 모니터에서 실행중인 앱을 볼 수 없습니다 (현재는 존재하지 않음). 또한 UltrMon을 사용하면 고아 응용 프로그램을 기본 화면으로 쉽고 빠르게 이동할 수 있습니다.

    +0

    집에서 UltraMon을 사용하고 일합니다. 사람들이 실제로 그것없이 어떻게 살아가는 지 모르겠다. 롤. 스마트 작업 표시 줄을 사용할 때 약간 흐릿해질 수는 있지만 잘 작동하고 자주 작업하기에 충분합니다. - Kevin Fairchild –

    +0

    어떤 끈적 거리는 웹 사이트. 2009 명의 사람들입니다! 그러나 흥미로운 제품. 링크 주셔서 감사합니다 :) – nlaq

    +0

    나는 직장에서 듀얼 모니터로 도킹 된이 정확한 상황에 있지만 멀리있을 때 노트북 화면 만 있습니다. 눈에 보이는 영역에서 응용 프로그램이로드 될 때 놀랍게도 실망 스럽습니다. MS Outlook은 가장 큰 범죄자 중 하나입니다. 나는 Ultramon의 사본을 얻고 잘하면 삶을 좀 더 쉽게 만듭니다. 감사! – SqlRyan

    0

    내가 한 화면에 내 바탕 화면에 바로 가기를 넣을 경우 시작 응용 프로그램이 해당 화면 ( 경우이 응용 프로그램은 자신의 위치를 ​​변경하지 않습니다)에 표시 될 수 있습니다 것으로 나타났습니다.

    이것은 Windows 탐색기에서 실행중인 항목에도 적용됩니다. Explorer가 한 화면에 있으면 실행 된 응용 프로그램이 사용할 모니터를 선택합니다.

    다시 말하지만 시작 응용 프로그램이 기본 (Windows 관리) 위치를 지정할 때라고 생각합니다. 대부분의 응용 프로그램은이 기본 동작을 어떤 식 으로든 무시하는 것처럼 보입니다.

    이 작업을 수행 할 것과 같이 만든 간단한 창

    HWND = CreateWindow 함수 (windowClass, WINDOWTITLE, WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, SW_SHOW, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL);

    3

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

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

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

    53

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

    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 단계를 다시 수행하십시오.

    +1

    정말 고마워. 내가 추가하고 싶은 한 가지 의견은 앱이 프로그램 (예 : IE 실행)에 의해 실행되면 iexplore를 실행하고 TryingToHelp가 나열한 것을 따라야한다는 것입니다. 그것은 작동합니다. 필자의 경우, 주어진 url을 매개 변수로 사용하여 IE를 시작하는 작업 예약 프로그램이 있습니다. 작업 스케줄러에 의해 시작된이 IE의 크기 조정 및 이동은 도움이되지 않았습니다. – yantaq

    +0

    불행히도 Win7에서 제게 작동하지 않습니다. 1 ~ 5 단계는 작동하며 최대화하지 않으면 프로그램 (TeXstudio)이 적절한 모니터에서 시작됩니다. 최대화 후 닫으면 다른 디스플레이에서 다음 시작이 발생합니다. –

    +0

    일부 응용 프로그램에서는이 기능을 사용할 수 있지만 Windows 10 PowerShell에서는 항상 내 랩톱 화면에서 시작하고 외부 모니터에서는 절대로 시작하지 않습니다. – Nate

    2

    그래서 Adobe Reader 9.0에서이 문제가 발생했습니다. 어떻게 든 프로그램은 내 오른쪽 모니터에서 열리는 것을 잊었으며 내 왼쪽 모니터에서 계속 열려있었습니다. 대부분의 프로그램은 화면 위로 드래그하여 화면을 최대화 한 다음 닫아서 기억합니다. 글쎄, 어도비와 함께, 그것을 극대화하기 전에 그것을 끌고 닫아야 만 다음에 어느 화면을 열 것인지를 윈도우가 기억하도록했다. 올바른 모니터로 설정하면 최대화 할 수 있습니다. 나는 거의 모든 윈도우 프로그램이 XP를 기억할 방법을 찾지 않고 자동으로 기억하기 때문에 이것은 어리석은 것이라고 생각한다.

    +0

    정말 대답하지는 않았지만 도와 줬습니다. –

    1

    그래서 최대화하거나 화면을 오른쪽 클릭하고 이동/크기 조정 한 다음 닫고 다시 열어서 한 화면에서 열도록 설정할 수있는 앱이 있다는 데 동의합니다. 그러나 메인 화면에서만 열리는 다른 것들이 있습니다.

    해결 방법 : 완고한 응용 프로그램을 선호하는 모니터를 모니터 1과 다른 모니터를 2로 설정 한 다음 모니터 2를 기본 모니터로 변경하여 바탕 화면 설정 및 시작 막대가 남아 있습니다. 희망이 도움이됩니다.

    9

    정확하게이 질문에 대한 답변이 아니지만 바로 가기 번호가 Shift + Win + [left,right] arrow keys 인이 문제를 처리했습니다. 현재 활성 창을 다른 모니터로 이동할 수 있습니다.

    +0

    Shift 키를 사용하지 않고 Shift + 키를 누르지 않아도 효과적입니다. 한 모니터에서 작업하고 누락 된 앱을 열 때 도움이되었습니다. – Dazed

    +0

    중요 사항 :이 기술을 사용하면 Windows가 현재 창 위치를 저장하지 않습니다. 이를 위해 마우스로 한 번 이상 창을 이동/크기 조정해야합니다. –

    -3

    바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. "바로 가기"탭에 있는지 확인하십시오. 실행 드롭 다운 상자를 선택하고 최대로 변경하십시오.

    기본 모니터에서 전체 화면으로 프로그램을 시작하는 데 도움이 될 수 있습니다.

    +3

    이것은 실제로 질문에 대답하지 않으며 이것은 * 오래된 질문입니다. – Ajean

    관련 문제