"닷넷에서는 전역 후킹을 지원하지 않습니다."


이건.. 블로그에도 찾아보면 있는 말이고

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




Posted by 퓨전마법사
,