"닷넷에서는 전역 후킹을 지원하지 않습니다."
이건.. 블로그에도 찾아보면 있는 말이고
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
'개발 관련 글' 카테고리의 다른 글
MS Chart Control (0) | 2011.08.09 |
---|---|
[C#] 글 읽어주는 메모장 만들기 (0) | 2011.08.02 |
Write a Windows Live Writer Plugin Using C# (0) | 2011.07.23 |
1. 소통의 관문, 회원가입/로그인 (0) | 2010.12.14 |
윈도우폰 개발 환경설정 (0) | 2010.11.17 |