지금 마우스 후킹 구현해서 마우스 아래에 있는 개체를 AccessibleObjectFromPoint로 불러오는것 까진 했다.
나중에 본건데. thescripts에서의 Capturing text in Windows UI controls with C# 라는 게시물(http://www.thescripts.com/forum/thread246382.html)에서 자문자답으로 답을 구하고 있었다. 진작에 이거 봤으면 조금 빨리 진행되었을텐데..
아무튼 마우스 후킹 관련해서는 코드프로젝트의 Processing Global Mouse and Keyboard Hooks in C#라는 게시물(http://www.codeproject.com/csharp/globalhook.asp )이,
AccessibleObjectFromPoint에 관연해서는 pinvoke.net의 WindowFromAccessibleObject (oleacc)이라는 게시물(http://www.pinvoke.net/default.aspx/oleacc/AccessibleObjectFromPoint%20.html)이 도움이 많이 되었다. 예제 소스가 바로 쓸 수 있도록 만들어져있어서 삽질하는 일을 줄여주었다.
아무튼 금방 짜집기로 만들긴 했는데 문제는 인터넷 익스프로러 내에 있는 개체들은 인식이 안된다는거. 익스프로러의 메뉴인 파일, 편집, 보기. 같은건 인식이 되는데 html문서의 개체들은 인식이 안된다. 이게 안되면 다 필요 없는데.
소스포지에서 Managed Windows API라는 녀석(http://sourceforge.net/projects/mwinapi/)을 발견하고 이녀석은 뭔가 다르겠지 하고 로드해봤지만 에러만 나타낸다. 데모 버전과 소스버전에서 .net 예외라고 나오고 종료-_-
(대신 나중에 꼭 써먹힐 것 같은 라이브러리였다. 클립보드, 마우스 등을 관리하였다. )
에러가 뭐냐면, 이상하게 개체를 인식하려고 하면 "-2147417843"이라면서 MSDN의 Problem about "AccessibleObjectFromPoint()" function in MSAA with C# 에 나와있는것처럼 (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1606682&SiteID=1)
오류가 뜨는것이다. 그에 대한 답을 제시해놓은 게시물을 찾을수가 없었다,-_-
그러다가 MSDN의 How can I use AccessibleObjectFromPoint() with C#(MSAA) 라는 게시물에서(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1625245&SiteID=1) Accexplorer 라는 놈이 있다는것을 발견하고 이것에 대해 또 알아보게 되었다
이 프로그램은 Active Accessibility 2.0 SDK Tools(http://www.microsoft.com/downloads/details.aspx?familyid=3755582A-A707-460A-BF21-1373316E13F0&displaylang=en ) 내에 있었고, 받을 수 있었다. 다른 프로그램도 같이 있었지만, 관심&시간관계상 이 프로그램만 실행해 보기로 했다,
이 스샷이 내가 원하는 바다. 웹페이지 상의 그림을 선택 할 수 있는것
저쪽 왼쪽 리스트의 그림이 선택되어 있는게 보인다.
그리고 또 발견한것이 MSDN에서 Drilling down into Internet Explorer 라는 게시물(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1376534&SiteID=1). 역시 AccessibleObjectFromPoint 로 브라우저 내용에 접근했을 떄 HTML 요소가 아닌 internetexplorer_server 라고 뜨는데에 의문을 제기한것이다.
여기에선 또 UI SPY라는 프로그램이 언급이 되었고 다시한번 찾아보게 되었다.(http://msdn2.microsoft.com/en-us/library/ms727247.aspx)
근데 이것을 다운받으려니 다운 주소가 안나와있는것. 이것은 .NET Framework 3.0 beta/RC release에 들어있다고 MSDN의 Download UI Spy (UISpy.exe) 라는 게시물(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=743940&SiteID=1)에서 알 수 있었다,
나는 그냥 Microsoft .NET Framework 3.5 베타 2를 받아버렸다. 근데 152MB라니...(http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=d2f74873-c796-4e60-91c8-f0ef809b09ee)
리부팅 해야한다.-_-
댓글 없음:
댓글 쓰기