2011-01-08 1 views
1

user32.dll을 사용하여 Windows를 열거하고이를 List에 추가하는 interop 코드를 작성했습니다. WindowData는 창 hWnd, 제목, 위치, 크기, 실행 파일 경로, 응용 프로그램 아이콘 등을 저장하는 로컬 INotifyPropertyChanged 클래스입니다.열려있는 모든 창에 대해 창 데이터에 "바인딩"할 수있는 방법이 있습니까?

윈도우 제목, 위치, 크기의 변경에 효과적으로 바인딩 할 수있는 방법이 있습니까? , 등? 매 초마다 정보를 업데이트하기 위해 DispatcherTimer를 사용하고 싶지 않습니다. 간단한 이벤트 처리기 또는 콜백 또는 뭔가를 사용할 수 있으면 그것을 선호합니다.

누구든지 아이디어가 있습니까?

답변

0

폴링하지 않고 모든 창에 대한 창 데이터를 효율적으로 추적하려면 창 만들기 또는 삭제에 대한 알림을 등록한 다음 모든 메시지 큐를 연결하고 추적하려는 창 데이터에 영향을주는 메시지를 처리해야합니다. 불행히도 이것은 상당한 작업입니다. 시작을 원하면 Spy ++가 어떻게 구현되었는지 살펴볼 수 있습니다. 다음 기사는 다음과 같습니다

보고 후가 있었다 수 있다는 ObservableCollection 만 변경된 데이터를 업데이트 신중하게 모든 너무 자주 단지 폴링을 다시 생각합니다.