win32 API에 액세스하여 작업 표시 줄의 위치, 크기, 상태 및 가장자리를 가져 오는 클래스가 있습니다. 이 클래스를 사용하여 작업 표시 줄의 위치에 따라 경고를 생성 할 위치를 알 수 있습니다. 새 경고가 생성되거나 삭제 될 때 작업 표시 줄이 언제인지에 따라 경고 위치를 업데이트하는 방법이 있습니다.작업 표시 줄이 움직일 수 있습니까?
업데이트 방법을 호출 할 수 있도록 작업 표시 줄이 움직일 때 감지하는 방법이 있습니까? 그런 식으로 사용자가 작업 표시 줄을 움직이면 경고는 새 경고가 오거나 하나가 삭제 될 때까지 어리석은 위치가 아닌 적절한 위치로 이동합니다.
내 생각에 타이머가 현재 작업 표시 줄 개체에 대해 매 초마다 새 것으로 생성 된 것을 확인하고 뭔가가 변경되면 업데이트 메서드를 호출하는 것이 었습니다. 나는 이것을하기위한 "더 쉬운"또는 "더 나은"방법이 있는지 궁금 할뿐입니다. (비주얼 스튜디오 2,010 C#을 사용)
TL , 작업 표시 줄이 메소드를 호출 할 때 이동 DR을 검출 할 필요가있다.
호 다만, 사용자가 지속적으로 주위의 작업 표시 줄을 이동하지 않습니다하지 않습니다
여기 시작하는 링크입니다. SHAppBarMessage()를 ABM_GETTASKBARPOS와 함께 사용하여 바가 새 경고 창을 배치하는 위치를 찾으십시오. 타이머 틱에서 그렇게하고 싶다면 밀리 세컨드마다하지 않는 한 그다지 틀린 것은 없습니다. –
이 작업을 수행하는 올바른 방법은 경고를 표시하기 직전에 작업 표시 줄 위치를 묻는 것입니다. 작업 표시 줄을 이동하거나 타이머를 사용할 때 알림을받는 것은 완전히 필요하지 않습니다. –
응용 프로그램이 시작될 때 또는 새 경고가 생성/삭제 된 다음 경고 위치를 업데이트 할 때 이미 작업 표시 줄 위치를보고 있습니다. 문제는이 경고 시스템이 거의 사용되지 않지만 문제가 끝날 때까지 일정 시간 동안 사용자 컴퓨터에서 경고 메시지가 화면에 남을 수 있습니다. 따라서 작업 표시 줄이 움직일 확률은 높지만 움직이지 않는 경고는 사람들이 불평 할 문제가 될 수 있습니다. – flip66