"닷넷에서는 전역 후킹을 지원하지 않습니다."
이건.. 블로그에도 찾아보면 있는 말이고
MSDN복음 512장 34절 에서도 이미 말씀하셨죠..
하지만 WinAPI에서는 지원하구요.. C#은 그 아이를 사용할 수 있으니..;;
실력 좋으신 분들이 이미 소스를 다 만들어 놓으셨답니다.
여기에 user32.dll 마샬링을 이용한 예제가 있어서 주소를 링크시킵니다. 기능은 키보드와 마우스 이벤트를 받아 출력 해 주구요~
http://www.codeproject.com/KB/cs/globalhook.aspx
다음은 이벤트를 직접 날려주는 코드입니다. 참고하셔요~
keybd_event (user32)
C# Signature:
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
UIntPtr dwExtraInfo);
or
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
int dwExtraInfo);
void PressKey( byte keyCode )
{
const int KEYEVENTF_EXTENDEDKEY = 0x1;
const int KEYEVENTF_KEYUP = 0x2;
keybd_event( keyCode, 0x45, KEYEVENTF_EXTENDEDKEY, 0 );
keybd_event( keyCode, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
}
왼쪽은 후킹 모니터구요.. 마우스를 움직이면 메모장에 자동으로 'a'를 찍어주게 된답니다~ 잘 활용하면 재밌는 걸 얼마든지 만들어 낼 수 있겠죠 ㅋㅋ
이런 재미에 프로그래밍을 하나봐요 :D
'2_ 바삭바삭 프로그래밍 > C# and Visual C++' 카테고리의 다른 글
[C#] 드래그 앤 드롭 (1) | 2011.07.25 |
---|---|
[C#] 글 읽어주는 메모장 만들기(Application to speak the text written in the textbox using C#.Net) (0) | 2011.07.21 |
[C#] 프로그램 실행시간 체크, 프로세스 메모리 체크, ICSharpCode 라이브러리를 이용한 파일 압축 / 해제 (0) | 2011.07.15 |
MFC - 프로그램 종료, 버튼 숨김/ 비활성화 (1) | 2011.04.11 |
MFC - Process에서 메모리 사용량 알아내기 (0) | 2011.04.06 |