Пример #1
0
        public void SetUp()
        {
            var kernel32 = MockRepository.GenerateStub<IKernel32>();
            HookProc callback = delegate { return 1; };

            _user32 = MockRepository.GenerateStub<IUser32>();
            _user32.Stub(usr32 => usr32.SetWindowsHook(Arg<int>.Is.Anything, Arg<HookProc>.Is.Anything, Arg<IntPtr>.Is.Anything, Arg<int>.Is.Anything))
                .WhenCalled(invocation=>callback = (HookProc)invocation.Arguments[1])
                .Return(KEYBOARD_HOOK_HANDLE);

            EventHandler<KeyboardEventArgs> keyboardEventHandler = MockRepository.GenerateStub<EventHandler<KeyboardEventArgs>>();
            KeyboardEventArgs eventArgs = new KeyboardEventArgs(0, new Dictionary<VirtualKeyCode, KeyState>()) {Handled = false};
            keyboardEventHandler.Stub(handler => handler(null, null)).IgnoreArguments().WhenCalled(invocation => invocation.Arguments[1] = eventArgs);

            Keyboard keyboard = new Keyboard(_user32, kernel32);
            keyboard.KeyUp += keyboardEventHandler;

            KeyboardHookStruct keyboardData = new KeyboardHookStruct();
            _ptr = Marshal.AllocHGlobal(Marshal.SizeOf(keyboardData));
            Marshal.StructureToPtr(keyboardData, _ptr, true);

            callback(Constants.HC_ACTION, Constants.WM_KEYUP, _ptr);
        }
Пример #2
0
    public void SetUp()
    {
        var kernel32 = MockRepository.GenerateStub<IKernel32>();
            HookProc callback = delegate { return 1; };

            _user32 = MockRepository.GenerateStub<IUser32>();
            _user32.Stub(usr32 => usr32.SetWindowsHook(Arg<int>.Is.Anything, Arg<HookProc>.Is.Anything, Arg<IntPtr>.Is.Anything, Arg<int>.Is.Anything))
                .WhenCalled(invocation=>callback = (HookProc)invocation.Arguments[1])
                .Return(KEYBOARD_HOOK_HANDLE);

            _firstHandler = MockRepository.GenerateMock<EventHandler<KeyboardEventArgs>>();
            _secondHandler = MockRepository.GenerateMock<EventHandler<KeyboardEventArgs>>();
            Keyboard keyboard = new Keyboard(_user32, kernel32);

            keyboard.KeyUp += _firstHandler;
            keyboard.KeyUp += _secondHandler;

            KeyboardHookStruct keyboardData = new KeyboardHookStruct();
            _ptr = Marshal.AllocHGlobal(Marshal.SizeOf(keyboardData));
            Marshal.StructureToPtr(keyboardData, _ptr, true);

            callback(Constants.HC_ACTION, Constants.WM_KEYUP, _ptr);
    }
Пример #3
0
    public void SetUp()
    {
        var kernel32 = MockRepository.GenerateStub<IKernel32>();
            _user32 = MockRepository.GenerateStub<IUser32>();
            _user32.Stub(usr32 => usr32.SetWindowsHook(Arg<int>.Is.Anything, Arg<HookProc>.Is.Anything, Arg<IntPtr>.Is.Anything, Arg<int>.Is.Anything))
                .Return(KEYBOARD_HOOK_HANDLE);
            _user32.Stub(user32=>user32.UnhookWindowsHook(KEYBOARD_HOOK_HANDLE)).Return(1);

            EventHandler<KeyboardEventArgs> handler = MockRepository.GenerateStub<EventHandler<KeyboardEventArgs>>();

            Keyboard keyboard = new Keyboard(_user32, kernel32);
            keyboard.KeyUp += handler;
            keyboard.KeyUp -= handler;
    }
Пример #4
0
        public void SetUp()
        {
            var kernel32 = MockRepository.GenerateStub<IKernel32>();
            _user32 = MockRepository.GenerateMock<IUser32>();

            _user32.Stub(user32 => user32.SetWindowsHook(
                                       Arg<int>.Is.Equal(Constants.WH_KEYBOARD_LL),
                                       Arg<HookProc>.Is.Anything,
                                       Arg<IntPtr>.Is.Anything,
                                       Arg<int>.Is.Anything)).Return(1);

            Keyboard keyboard = new Keyboard(_user32, kernel32);
            keyboard.KeyUp += delegate { };
        }