Ejemplo n.º 1
0
        static void SpaceReleaseTimer_Tick(object sender, EventArgs e)
        {
            WndTimer timer = (sender as WndTimer);
            IntPtr   wnd   = timer.Wnd;

            if (_spaceSendTime.AddMilliseconds(_spaceHoldTimeMilliseconds) <= DateTime.UtcNow)
            {
                _spaceReleaseTimer.Stop();
                if (_spaceAddShift)
                {
                    PressShift(wnd);
                }
                if (_spaceAddW)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('w'), (UIntPtr)0x00110001);
                }
                if (_spaceAddZ)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('z'), (UIntPtr)0x002C0001);
                }
                if (_spaceAddX)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('x'), (UIntPtr)0x002D0001);
                }
                if (_spaceAddC)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('c'), (UIntPtr)0x002E0001);
                }
                User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)VK_SPACE, (UIntPtr)0xC0390001);
                if (_spaceAddW)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('w'), (UIntPtr)0xC0110001);
                }
                if (_spaceAddZ)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('z'), (UIntPtr)0xC02C0001);
                }
                if (_spaceAddX)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('x'), (UIntPtr)0xC02D0001);
                }
                if (_spaceAddC)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('c'), (UIntPtr)0xC02E0001);
                }
                if (_spaceAddShift)
                {
                    ReleaseShift(wnd);
                }
            }
        }
Ejemplo n.º 2
0
        public static void SendSpace(IntPtr wnd, int msToHoldDown = 0, bool addShift = false, bool addW = false, bool addZ = false, bool addX = false, bool addC = false)
        {
            User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)VK_SPACE, (UIntPtr)0x00390001);
            if (msToHoldDown == 0)
            {
                if (addShift)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)VK_SHIFT, (UIntPtr)0x002A0001);
                }
                if (addW)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('w'), (UIntPtr)0x00110001);
                }
                if (addZ)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('z'), (UIntPtr)0x002C0001);
                }
                if (addX)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('x'), (UIntPtr)0x002D0001);
                }
                if (addC)
                {
                    User32.PostMessage(wnd, User32.WM_KEYDOWN, (IntPtr)CharCode('c'), (UIntPtr)0x002E0001);
                }
                User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)VK_SPACE, (UIntPtr)0xC0390001);
                if (addW)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('w'), (UIntPtr)0xC0110001);
                }
                if (addZ)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('z'), (UIntPtr)0xC02C0001);
                }
                if (addX)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('x'), (UIntPtr)0xC02D0001);
                }
                if (addC)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)CharCode('c'), (UIntPtr)0xC02E0001);
                }
                if (addShift)
                {
                    User32.PostMessage(wnd, User32.WM_KEYUP, (IntPtr)VK_SHIFT, (UIntPtr)0xC02A0001);
                }
            }
            else
            {
                if (_spaceReleaseTimer == null)
                {
                    _spaceReleaseTimer          = new WndTimer(wnd);
                    _spaceReleaseTimer.Tick    += new EventHandler(SpaceReleaseTimer_Tick);
                    _spaceReleaseTimer.Interval = 1;
                }

                _spaceSendTime             = DateTime.UtcNow;
                _spaceHoldTimeMilliseconds = msToHoldDown;
                _spaceAddShift             = addShift;
                _spaceAddW = addW;
                _spaceAddZ = addZ;
                _spaceAddX = addX;
                _spaceAddC = addC;
                _spaceReleaseTimer.Start();
            }
        }