학교 수강신청 서버에서 crypt이미지들 200여개를 훔쳐서 가지고 있었는데, 이번 수강신청 기간에 완전히 발리는(?) 바람에 열받아서 만들게 되었다.
'훔쳐온 이미지들은 파일명이 각각 이미지 상의 문자열과 일치하기 때문에, 수강신청시 익스프로러에 보여지는 이미지랑 특정 파일이랑 일치하는지 확인하여 일치하면 파일명을 브라우저에 넘겨주면 좋을거다' 하는 아이디어였다. 또한 단축키를 이용하여 수강코드를 자동으로 입력해 주는 기능을 넣었었다.
1.0 버전에서는 이미지 프로세싱과 브라우징에 초점을, 2.0 버전에서는 현재 띄워져 있는 브라우저의 input항목에 직접 값을 쓰는 방법과, 단축키 사용을 추가하였었다.
순조롭게 진행되고 있었는데 한가지 문제점. 과연 익스프로러에서 그림을 어떻게 추출할 것인가!!!
여러가지 방법을 생각했었다.
1. WebBrowser 객체를 이용하여 프로그램내에 브라우저를 만든 후에 객체를 document의 getElementID를 이용하여 그림 객체를 받아와서 불러오기
=> getElementID까지는 되었다. 하지만 그림 객체를 주물럭 하는건 불가능했다. 혹시라도 hash값을 불러오면 되지 않을까 하여 메소드를 사용해봤지만, 이 메소드는 이미지파일고유의 해시값을 가져오는것이 아닌 이미지객체의 해시값을 가져오는것이었다.
어쩔수 없이 다른방법으로, 파일 크기를 알아내어 그 크기와 같은 크기를 가진 로컬이미지의 목록을 출력하는 기능을 만들었다. (그래서 프로그램에 필수사항 항목이 풀다운 메뉴로 이루어진것- 나름 쓸만했다.)
2. 사용자에게 간단한 입력(마우스로 복사 버튼 누르기)으로 웹브라우저상의 이미지를 클립보드로 복사하고, 클립보드의 그림과 로컬의 그림을 대조하는 방법을 사용할까?
=> 하지만 이 방법에서도 간과하고 넘어간 하나가 있었으니, 클립보드의 팔레트와 로컬파일의 팔레트가 다른것! 흑백 전환하여 일일히 대조하는 방법도 생각은 해봤지만, 사용자의 입력 없이도 가능한 방법이 있을거라 생각하여 접어두었다.
3. 궁극의 방법, 패킷캡쳐!!
=>그다지 어려운 문제는 아니었다. 인터넷에는 패킷캡쳐 라이브러리와 소스들이 넘쳐나니까. 하지만 그다지 좋은 방법이 아니라고 생각하고 중간에 멈춰섰다..('패킷' 이라는 단어에 민감하다-_-)
4. 며칠전에 데브피아에서 죽치다가 알아냈다.-_-;; 이걸 모르고 있었다니. 프로그래밍을 야매로(발로한) 경력이 여지없이 보여지는 순간! winapi 를 이용하는것. 그것도 oleacc.dll 파일을 이용하면 되는거였다.
하지만 어쩌겠는가. 이미 나는 이번 수강신청을 아무런 문제없이 마치게 되었다. 매크로 익스프로러같은 프로그램에 의지하는것보다 직접 능력을 기르는것이 더욱 더 안전하다라고 생각한 기간이었다. -특히나 예외상황이 발생하면 당황하기 쉽상이다.!
(마우스 클릭 게임과 복사 붙여넣기신공을 더욱 연마하였더니 거뜬하게..ㅋㅋㅋ)
그나저나 olecc.dll 꽤나 매력적인데 한번 이거가지고 장난좀 쳐봐야겠다.ㅋㅋ
댓글 없음:
댓글 쓰기