티스토리 툴바


'Programming/C#(.Net)'에 해당되는 글 2건

  1. 2012/02/10 [C#]그래서 대충만든 후킹 프로그램 ClicknTouch 0.1a
  2. 2011/08/11 [C#]키보드 후킹
Programming/C#(.Net)2012/02/10 12:48
무슨 키가 입력되는지
몇번 입력됐는지
마우스의 유효픽셀 이동거리는 얼마인지
-> 이거슨, 문제가 있는게, 1920x1680모니터에서 화면 끝으로 마우스를 한번에 빨리 움직이면 1680픽셀이 다 인식이 되는것이 아님. 하지만 천천히 움직이면 다 인식됨

 c#으로 만들었고,
윈도xp에서는 트레이로 축소시키면 몇초간의 딜레이가 있음
윈도7 에서는 딜레이 없이 작동 잘 되는듯


차후예상 추가기능 
마우스 클릭 세기
키보드의 키중 제일 많이 입력된 키 랭크 매기기
마우스 픽셀 이동거리 통한 모니터 크기를 받아서 실제 이동거리를 구하기(하루에 몇 m를 갔니 이런거)
 

저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License

'Programming > C#(.Net)' 카테고리의 다른 글

[C#]그래서 대충만든 후킹 프로그램 ClicknTouch 0.1a  (0) 2012/02/10
[C#]키보드 후킹  (0) 2011/08/11
Posted by 정환나라

댓글을 달아 주세요

Programming/C#(.Net)2011/08/11 14:46
출처 : http://nicejinux.net/bbs/zboard.php?id=lecture&no=66
-- 감사합니다

using System;        
using System.Diagnostics;        
using System.Windows.Forms;        
using System.Runtime.InteropServices;        

class InterceptKeys        
{        
        private const int WH_KEYBOARD_LL = 13; 
        private const int WM_KEYDOWN = 0x0100; 
        private static LowLevelKeyboardProc _proc = HookCallback;        
        private static IntPtr _hookID = IntPtr.Zero; 

        public static void Main()        
        {        
                _hookID = SetHook(_proc);        
                Application.Run(); 
                UnhookWindowsHookEx(_hookID);        
        }        

        private static IntPtr SetHook(LowLevelKeyboardProc proc) 
        {        
                using (Process curProcess = Process.GetCurrentProcess()) 
                using (ProcessModule curModule = curProcess.MainModule)        
                {
                        return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0); 
                }        
        }        
        
        private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);        
        private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) 
        {        
                if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
                {        
                        int vkCode = Marshal.ReadInt32(lParam);        
                        Console.WriteLine((Keys)vkCode); 
                }        
        
                return CallNextHookEx(_hookID, nCode, wParam, lParam); 
        }
        
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
        private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);   
        
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
        [return: MarshalAs(UnmanagedType.Bool)] 
        private static extern bool UnhookWindowsHookEx(IntPtr hhk);   
        
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
        private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam); 
        
        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] 
        private static extern IntPtr GetModuleHandle(string lpModuleName);  
}


콘솔어플리케이션으로 만들고 system.window.form하나 추가해주고 
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License

'Programming > C#(.Net)' 카테고리의 다른 글

[C#]그래서 대충만든 후킹 프로그램 ClicknTouch 0.1a  (0) 2012/02/10
[C#]키보드 후킹  (0) 2011/08/11
Posted by 정환나라

댓글을 달아 주세요