구글 크롬 : Always On Top Bug


15

모호한 제목에 대해 죄송하지만 설명이 어렵습니다.

웹 개발을 위해 직장에서 Windows Vista를 사용하고 있으며 때로는 배경 창을 클릭하거나 Alt-Tab을 누르면 창에 포커스가 있지만 앞쪽으로 이동하지는 않습니다.

창을 앞으로 가져 오려면 응용 프로그램 테두리를 클릭해야합니다 (크기 조정 커서가 나타날 때) 창이 앞으로 이동합니다.

나는 약 1 년 동안이 문제를 겪었고 적어도 하루에 수십 번 발생하지만 항상 그렇게하지는 않습니다-무작위로 보입니다.

문제를 완전히 설명하고 이해 했으며이 문제를 해결하기위한 건설적인 답변이나 의견에 감사드립니다.

예 : Chrome에서 메모장으로 Alt-Tab을했는데이 문제가 무작위로 발생하면 Chrome은 메모장 앞에 남아 있지만 창이 Google 크롬 뒤에있는 동안 메모장에 텍스트를 입력 할 수 있습니다. 메모장의 컨텐츠 영역을 클릭하면 앞쪽으로 가져 오지 않지만 창 테두리를 클릭하면됩니다.

비디오 시험

http://vimeo.com/19388998

이 비디오에서는 Google Chome에서 UltraEdit으로 클릭했고 크롬은 글꼴로 유지되었지만 보시다시피 여전히 UltraEdit을 입력 할 수 있습니다.

Chrome에서 버그 있다고 믿기 시작하여 다른 응용 프로그램간에 계속되는지 계속 볼 것입니다.


컴퓨터를 낮은 해상도 (HD 720p 이하)로 설정하고 Jing을 사용하여 문제를 보여주는 비디오를 업로드 할 수 있습니까 ? 또한 자동 실행ShellExView 로 자동 시작되는 응용 프로그램을 비활성화 하여 유휴 프로그램 또는 탐색기 확장으로 인해이 동작이 발생하는지 확인하십시오. 그래도 비활성화 한 내용을 살펴보십시오 ...
Tamara Wijsman

특정 응용 프로그램이 열려 있고 그로부터 탭을 대체하려고 할 때 발생합니까? 해당 창이 항상 맨 위에 설정되어있는 경우 일 수 있습니다. 내 mIRC 창이 항상 맨 위에 설정되었을 때이 문제가 잠시 동안 발생했습니다.
Windos

이 문제도 발생합니다 (Windows 7 사용). 문제의 본질을 정확히 모르지만 웹 브라우저를 열었을 때 열린 웹 사이트 중 하나에 플래시 컨텐츠가있을 때 발생한다고 생각합니다. 그럼에도 불구하고, 나는 그것을 복제 할 수없는 것 같습니다.
happy_soil

이제는 "Always on Top"으로 설정된 백그라운드에서 일부 프로그램이 실행되므로 창 초점을 방해하는 것으로 생각됩니다.
happy_soil

@ happy_soil : 당신은 이것을 대답으로 넣을 수 있습니다. "항상 맨 위"창을 실행하면이 동작에 대한 좋은 설명입니다.
harrymc

답변:


6

Chrome의 경우 알려진 문제입니다. Chrome 창 상시 동작

이 문제를 빠르게 해결하려면 Chrome 창을 선택하고 F11을 두 번 누르십시오.


이 버그 링크를 주셔서 감사하지만, 내가 가진 문제는 아닙니다. 내 문제는 작업 표시 줄이 아니라 응용 프로그램 창과 관련이 있습니다. Chrome에서이 문제를 일으키는 지 여부를 확인할 수 없습니다.
GateKiller

이전 의견이 무례하게 들리면 죄송합니다. 내 의도가 아니었다. 귀하의 의견에 감사드립니다 :)
GateKiller

이 버그는 분명히 alt-tab과 작업 표시 줄 모두에 영향을 미칩니다. 초기 버그 보고서는 작업 표시 줄에 대한 것이지만 주석 41도 alt-tab에 미치는 영향을 언급했습니다. (당신의 의견은 전혀 무례하게 들리지 않았습니다.)
harrymc

추가로 읽고 테스트 한 결과 Windows 용 Chrome이 실제로 문제가된다는 데 동의합니다. Google이 문제를 해결하기를 기다리는 동안 귀하의 답변에 대안을 추가했습니다.
GateKiller

1
Windows 10을 사용하고 있습니다.이 문제는 여전히 존재하며 F11은 두 번 작동하지 않습니다.
Rosdi

4

그것은 어떻게 생겼습니까?

해당 문제와 가까운 동작은 하나 뿐이며 항상 위 동작입니다.
아마도 프로그램 자체의 일부 코드가 창의 속성을 변경했을 수 있습니다 ...

창은 "항상 상단"으로 설정되어 있습니까?

항상 위에있는 양식을 만드는 방법 은 두 번째 매개 변수가 HWND_TOPMOST로 설정된 상태에서 SetWindowPos 가 호출되었음을 보여줍니다. 그러면 바로 위에 배치되어 유지됩니다.

빠른 Google 검색 후이 결과User32.dll 이이 기능의 소유자 임을 나타냅니다 .

누가 내 창을 "항상 맨 위에"설정합니까?

함수가 무엇인지 알고 있으므로 함수가 언제 호출되는지 알고 싶습니다. 이를 위해서는 스택 추적을 작성하고 분석해야하지만 Windows Performance Toolkit에서 이를 수행 할 수 있지만 Rohitab Batra가 멋진 Api Monitor를 작성하게되어 매우 기쁩니다 .

죄송하지만 어려운 숙제입니다.

  • API Monitor를 다운로드 하여 설치하십시오.
  • 관리자로 API Monitor 엽니 다. 64 비트 인 경우이 작업을 두 번 수행해야합니다.
  • 왼쪽의 API 캡처 필터 에서 아무것도 확인 하지 않았는지 확인하십시오 .
  • 같은 위치에서 해당 대화 상자 상단의 모든 모듈User32.dll로 변경하십시오 .
  • 이동

    Windows Application UI Development > Windows and Messages > Windows
    

    그리고

    User32.dll > SetWindowPos
    

이제 일부 프로세스를 연결하려고합니다. 주의 사항 : PID를 기준으로 정렬 winlogon.exe하고 그보다 낮은 PID 를 사용 하거나 연결하지 않으면 시스템이 중단되거나 충돌 할 수 있습니다. 다른 프로세스에서도이 동작이 발생할 수 있지만 어떤 프로세스를 연결할 수 있는지 확인하는 것은 시행 착오와 같습니다. 그래서:

  • PID를 기준으로 정렬하고보다 새로운 것을 연결하십시오 winlogon.exe.
  • 모든 것이 잘 진행되면 Hooked Process 대화 상자 에서 스레드를 살펴볼 수 있습니다 .
  • 다음과 같은 API 호출을 찾으십시오.

    SetWindowPos (0x000000000002043c, HWND_BOTTOM | 0x00000000fffffffe , 0, 0, 0, 0,
    SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE)

에 대한 호출 을 SetWindowPosHWND_BOTTOM | 0x00000000fffffffe ( -2 + 1 = -1 = HWND_TOPMOST )는 우리가 추구하는 것이며이 호출을 수행하는 프로세스는 문제의 원인입니다.

포기 ... "Always On Top"문제를 어떻게 해결할 수 있습니까?

화재와의 전쟁, 우리는 모든 창을 HWND_NOTOPMOST 로 설정합니다 .

프로그래밍, 프로그래밍! 그러나 이것은 스크립팅을 통해 쉽게 수행 할 수 있습니다 ...

매우 간단한 숙제 :

  • AutoIt v3를 다운로드하십시오 .

  • 다음 을 포함 하는 ByeByeTopMost.au3 파일을 작성하십시오 .

    While 1
        $var = WinList()
    
        For $i = 1 to $var[0][0]
            WinSetOnTop($var[$i][1], "", 0)
        Next
    
        Sleep(5000)
    WEnd
    
  • 시작 폴더에 넣고 실행하거나 재부팅하십시오.

또는 숙제가 마음에 들지 않으면 내가 만든 이 zip 파일을 다운로드 하십시오 .

즐거운 시간 되세요 ... :-)

추신 : 이 마지막 경우 "항상 상단"기능을 사용할 수 없습니다. 문제 해결 또는 해결 방법 ... ;-)


나는이 답변을 좋아한다.
Supercereal

문제가 발생했을 때 SetWindowPos가 실행되지 않습니다 ... 또한 질문의 이름을 완전히 바꾼 다음 답변을 작성하는 것이 매우 불쾌합니다.
GateKiller

1
@ 게이트 킬러 : 어떻게 공격적입니까? 더 나은 답변을받는 데 도움이됩니다. 또한 문제에 대한보다 적절한 설명이기도합니다 ( "앞의 창"은 일반적으로 "항상 맨 위"라고 함). 이제 답변을받은 후 제목을 Chrome으로 변경했습니다 . 어쨌든 항상 롤백 할 수 있으며 문제가 해결되어 기쁘다. 문제가 발생하기 전에 SetWindowPos가 실행되거나 동일한 효과가있는 다른 유사한 절차를 호출 할 수 있습니다 ... :-)
Tamara Wijsman

4

이 기능을 사용하지 않으려면

Alt + 스페이스 + C

alt+ space+c

이 버튼을 누르면 Google 크롬 브라우저가 자동으로 닫힙니다. 그런 다음 Google 크롬 브라우저를 다시 시작하십시오.

문제는 영원히 해결 될 것입니다 :)


ALT + Space + C는 브라우저를 닫고 문제를 해결했습니다. 나는 당신의 대답을지지하기 위해 여기로 돌아와야했습니다.
Oscar Fraxedas

1
이것이 내 문제를 해결 한 유일한 것입니다.
ddonche


0

빠른 수정 방법 중 하나는 Windows 7 / 8 / 8.1에서 작업 표시 줄의 맨 오른쪽에있는 '바탕 화면 표시'버튼을 두 번 클릭하는 것입니다.


1
작성된대로 귀하의 답변은 유용한 정보를 거의 제공하지 않습니다. 조금 확장 할 수 있습니까?
bwDraco

0

나는이 같은 문제가 있었고 시작 메뉴에서 "사용자 전환"으로 이동하여 창에 다시 로그인 한 후 도구 모음을 존중하여 문제를 해결했습니다. 그것은 모든 창에 영향을 미치는 것처럼 보였고 크롬이 원인 일 수는 있지만 Windows 시스템 전체에 영향을 미치는 것으로 보였으므로 Windows 자체에서 가능한 범인을 암시합니다. Windows XP 및 7에서 5 년 동안 Chrome 사용자로 활동 한 후이 문제를 처음 접한 후이 게시물을 작성합니다.


0

글쎄, 같은 문제가 있었고 F11을 두 번 두드려도 아무것도 해결되지 않았습니다. 그러나 두 개의 Chrome 창이 열려 있었으므로 그 중 하나만 내가 가지고있는 다른 창 (증기, 메모장 등) 위에 있습니다. 그런 다음 항상 맨 위 탭 중 하나를 사용하여 새 창을 만든 다음 다른 모든 탭을 맨 위 창에서 새 창으로 가져갔습니다. 이제 모든 창을 정상과 같이 선택할 때 맨 위에 나타납니다.

희망이 있습니다 :)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.