Пример #1
0
		public MouseHook(IntPtr hwnd)
		{
			// デリゲートを変数に入れて参照しないとGCに回収されることがある?
			hookDelegate = MouseHookDelegate;

			uint processId;
			uint threadId = Win32API.GetWindowThreadProcessId(hwnd, out processId);
			hook = Win32API.SetWindowsHookEx(HookType.WH_MOUSE, hookDelegate, IntPtr.Zero, (int)threadId);
		}
Пример #2
0
        public MouseHook(IntPtr hwnd)
        {
            // デリゲートを変数に入れて参照しないとGCに回収されることがある?
            hookDelegate = MouseHookDelegate;

            uint processId;
            uint threadId = Win32API.GetWindowThreadProcessId(hwnd, out processId);

            hook = Win32API.SetWindowsHookEx(HookType.WH_MOUSE, hookDelegate, IntPtr.Zero, (int)threadId);
        }
Пример #3
0
        /// <summary>
        /// グローバルフックを開始
        /// </summary>
        /// <returns></returns>
        public static bool Set()
        {
            if (hHook == IntPtr.Zero)
            {
                HookProcedureDelegate HookProc = KeyBoardHookProc;
                GCHandle.Alloc(HookProc, GCHandleType.Normal);

                using (Process p = Process.GetCurrentProcess())
                    using (ProcessModule m = p.MainModule)
                    {
                        hHook = SetWindowsHookEx(HookType.WH_HOOK_LL, HookProc, GetModuleHandle(m.ModuleName), 0);
                    }

                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #4
0
        /// <summary>
        /// グローバルフックを開始
        /// </summary>
        /// <returns></returns>
        public static bool Set()
        {
            if (hHook == IntPtr.Zero)
            {
                HookProcedureDelegate HookProc = MouseHookProc;
                GCHandle.Alloc(HookProc, GCHandleType.Normal);

                using (Process p = Process.GetCurrentProcess())
                    using (ProcessModule m = p.MainModule)
                        hHook = SetWindowsHookEx((int)HookType.WH_MOUSE_LL, HookProc, m.BaseAddress, 0);

                if (hHook == IntPtr.Zero)
                {
                    return(false);
                }

                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #5
0
 public static extern IntPtr SetWindowsHookEx(HookType idHook,
                                              [MarshalAs(UnmanagedType.FunctionPtr)] HookProcedureDelegate lpfn, IntPtr hMod, int dwThreadId);
Пример #6
0
 private static extern IntPtr SetWindowsHookEx(int idHook, HookProcedureDelegate lpfn, IntPtr hInstance, int ThreadId);
 public static extern IntPtr SetWindowsHookEx(int _nHook, HookProcedureDelegate _lpfn, IntPtr _hInstance, int _nThreadId);
Пример #8
0
 private static extern IntPtr SetWindowsHookEx(HookType hooktype, HookProcedureDelegate callback, IntPtr hMod, UInt32 dwThreadId);
Пример #9
0
 public static extern IntPtr SetWindowsHookEx(WHConstants idHook, HookProcedureDelegate lpfn, IntPtr hInstance, int threadId);
Пример #10
0
 private static extern IntPtr SetWindowsHookEx(HookType hooktype, HookProcedureDelegate callback, IntPtr hMod, UInt32 dwThreadId);
Пример #11
0
 public static extern IntPtr SetWindowsHookEx(WHConstants idHook, HookProcedureDelegate lpfn, IntPtr hInstance, int threadId);