kkuzil.own@gmail.com

Posted
Filed under Development/Windows API

Windows Hook


1. 명령어

  • SetWindowsHookEx()
  • UnhookWindowsHookEx()

2. 종류

훅 타입

설명

WH_CALLWNDPROC,

 

WH_CALLWNDPROCRET

SendMessage 함수로 메시지를 보내기 전에

 

WH_CALLWNDPROC 훅 프로시저가 호출되며 윈도우 프로시저가 메시지를 처리한 후에 WH_CALLWNDPROCRET 훅 프로시저가 호출된다. WH_CALLWNDPROCRET 훅은 훅 프로시저에게 CWPRETSTRUCT 구조체를 전달하는데 이 구조체에는 메시지와 메시시를 처리한 리턴값을 담고 있다.

 

WH_CBT

윈도우를 생성, 파괴, 활성화, 최대, 최소, 이동, 크기변경하기 전에, 시스템 명령을 처리하기 전에, 마우스나 키보드 메시지를 메시지 큐에서 제거하기 전에 이 훅 프로시저가 호출된다. 이 훅은 컴퓨터를 이용한 훈련 프로그램(Computer Based Training)에서 주로 사용된다.

 

WH_DEBUG

다른 타입의 훅 프로시저를 호출하기 전에 이 타입의 훅 프로시저를 호출하며 다른 타입의 훅 프로시저 호출을 허가할 것인지를 결정한다.

 

WH_GETMESSAGE

GetMessage나 PeekMessage 함수로 조사되는 메시지를 감시한다.

 

WH_JOURNALRECORD

키보드나 마우스를 통해 입력되는 이벤트를 감시하고 기록한다. 기록된 이벤트는 WH_JOURNALPLAYBACK 훅에서 재생할 수 있다. 이 훅은 전역으로만 설치할 수 있으며 특정 스레드에만 설치할 수는 없다.

 

WH_JOURNALPLAYBACK

시스템 메시지 큐에 메시지를 삽입할 수 있도록 한다. 이 훅에서 WH_JOURNALRECORD 훅에서 기록한 키보드 마우스 입력을 재생할 수 있다. 이 훅이 설치되어 있으면 마우스나 키보드 입력은 금지된다. 이 훅은 전역으로만 설치할 수 있으며 특정 스레드에만 설치할 수는 없다.

 

WH_KEYBOARD

WM_KEYDOWN, WM_KEYUP 등의 키보드 메시지를 감시한다.

 

WH_MOUSE

마우스 메시지를 감시한다.

 

WH_MSGFILTER,

WH_SYSMSGFILTER

메뉴, 스크롤 바, 메시지 박스, 대화상자 등에 의해 처리되는 메시지와 사용자의 Alt+Tab키, Alt+Esc키 입력에 의한 포커스 이동을 감시한다. WH_MSGFILTER훅은 훅 프로시저를 설치한 프로그램에 대해서만 동작하며 WH_SYSMSGFILTER 훅은 모든 프로그램에 대해서 동작한다.

 

WH_SHELL

쉘 프로그램이 활성화되거나 새로운 최상위 윈도우가 만들어지거나 파괴될 때 이 훅 프로시저가 호출된다.

 

WH_FOREGROUNDIDLE

포그라운드 스레드가 한가해질 때 이 훅 프로시저가 호출된다. 아이들 시에 우선 순위가 낮은 작업을 하고 싶을 때 이 훅을 사용한다.

 

WH_KEYBOARD_LL

스레드의 입력큐에 붙여지는 키보드 입력 메시지를 감시한다. WH_KEYBOARD보다 더 저수준의 메시지를 받을 수 있지만 NT 4.0 SP 3 이후에만 사용할 수 있다.

 

WH_MOUSE_LL

스레드의 입력큐에 붙여지는 마우스 입력 메시지를 감시한다.

2012/05/16 10:33 2012/05/16 10:33
Posted
Filed under Development/Delphi

외근 갔다와서 소스를 업데이트 하고 델파이 코드를 열어봤는데..
한글이 깨져서 보이는 현상이 있었다.. 이게 뭔가;;



HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink\

에 Courier New 의 Value를 추가 하고 (Type = REG_MULTI_SZ) 값을 아래와 같이 채운다.

gulim.ttc,gulim
MSGOTHIC.TTC,MS UI Gothic
SimSun.TTC,SimSun
mingliu.ttc,PMingLiU



끝.
2012/04/30 16:46 2012/04/30 16:46
Posted
Filed under Development/Java & Android
코딩 중에 layout관련해서 수정중이거나 스트링 리소스를 수정이었으면
*.xml 로 포커스가 가있을 것이다. 이때, Ctrl+F11을 하면..

http://sunkj81.cafe24.com/textcube/entry/Android-mainoutxml-%EB%98%90%EB%8A%94-stringoutxml-%EC%83%9D%EC%84%B1%EB%90%98%EB%A9%B4%EC%84%9C-%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EC%8B%A4%ED%96%89-%EC%95%88%EB%90%A0%EB%95%8C?category=8 


이런 형태의 오류가 나오면 골치 아퍼지는데
이클립스에서 아래와 같이 설정해 주면 코드 포커스가 *.xml 에 가있어도 잘 된단다.

1. [메뉴]-[Windows]-[Preferences] 클릭
2. Run/Debug > Launching 에서 밑에 있는 "Launch Operation"에서 "Always launch the previously launched application" 에 라디오 체크
3. Run/Debug > Launching > Launch Configurations 에서 "Filter checked launch configurations types" 체크
4. 아래 리스트에서 "XSL" 체크
5. [OK] 또는 [Apply] 버튼 클릭
6. 끝
2012/04/11 19:10 2012/04/11 19:10
Posted
Filed under Development/Java & Android
1. 안드로이드 작업 정리...
    - 몇주 안했다고 손에 또 안익는다...
    - 기억도 가물가물하다...
    - 다시 기억을 떠올리며.. 손에 익히며 드는 생각...
    - 이게 무슨 시간 낭비란 말인가!!
    - "언어"는 지속적으로 "반복"해야 한다는걸 다시 한번 상기

2. 안드로이드 커뮤니티에서 정보 수집
    - 스마트폰에서 개발을 할 수 있는 "AIDE" 앱 발견 (두근두근)
    - 각종 팁 수집..

3. SunkCollection 에 Image Main Activity 생성
    - ImageView 하나 올려놓음..
    - Image Main에서 메뉴 버튼 누르면 메뉴 나오게 추가
2012/04/09 23:25 2012/04/09 23:25
Posted
Filed under Development/Java & Android
audio[V0.9.7] - 12-0306
- 파일 선택 시 최근 선택한 탭 기억
- 파일 선택 시 최근 폴더 기억
- 폴더목록 누르고 있으면 제외목록에 추가하는 기능
-- 폴더목록에서 제외하면 전체보기에서도 해당 소속파일 제외
-- 현재는 적용하려면 껐다 켜야함..
-- 현재는 한번제외하면 제외한걸 취소할 수 없음
- 무료 아이콘 검색 (역시 공짜는 쓸만한게 없다..)
- 아이콘 시험삼아서 추가 (탭, 폴더)       
2012/03/06 23:55 2012/03/06 23:55