Exemplo n.º 1
0
        private void SendKey(Win32APIImports.VirtualKeys key, KeyState keyState)
        {
            const uint KEYEVENTF_KEYUP = 0x0002;
            var isExtended = false;
            uint flags = 0;

            if (keyState == KeyState.Up)
                flags = KEYEVENTF_KEYUP;

            if (key == Win32APIImports.VirtualKeys.RightMenu
                || key == Win32APIImports.VirtualKeys.RightControl
                || key == Win32APIImports.VirtualKeys.Insert
                || key == Win32APIImports.VirtualKeys.Delete
                || key == Win32APIImports.VirtualKeys.Home
                || key == Win32APIImports.VirtualKeys.End
                || key == Win32APIImports.VirtualKeys.Prior
                || key == Win32APIImports.VirtualKeys.Next
                || key == Win32APIImports.VirtualKeys.Up
                || key == Win32APIImports.VirtualKeys.Left
                || key == Win32APIImports.VirtualKeys.Down
                || key == Win32APIImports.VirtualKeys.Right
                )
            {
                isExtended = true;
            }

            if (isExtended)
                flags |= 1;

            Win32APIImports.keybd_event((byte)key, Win32APIImports.MapVirtualKey((byte)key, 0), flags, UIntPtr.Zero);

        }
Exemplo n.º 2
0
 public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, Win32APIImports.SetWindowPosFlags uFlags);
Exemplo n.º 3
0
        public void SendText(string text, Win32APIImports.ModifierKey modifierKey)
        {
            IntPtr keyboardLayout = Win32APIImports.GetKeyboardLayout(0);

            while (!string.IsNullOrEmpty(text))
            {
                Win32APIImports.ModifierKey modKey = modifierKey;

                var vKey = Win32APIImports.VkKeyScanEx(text[0], keyboardLayout);

                //Hi-byte indicates the pressed modifier key(s)
                var highByte = (byte)(vKey >> 8);
                var lowByte = (byte)(vKey & 0xFF);

                if ((highByte & 1) == 1)
                    modKey |= Win32APIImports.ModifierKey.Shift;
                if ((highByte & 2) == 2)
                    modKey |= Win32APIImports.ModifierKey.Control;
                if ((highByte & 4) == 4)
                    modKey |= Win32APIImports.ModifierKey.Alt;


                if (modKey.HasFlag(Win32APIImports.ModifierKey.Shift))
                    SendKey(Win32APIImports.VirtualKeys.Shift, KeyState.Down);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.Windows))
                    SendKey(Win32APIImports.VirtualKeys.LeftWindows, KeyState.Down);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.Control))
                    SendKey(Win32APIImports.VirtualKeys.Control, KeyState.Down);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.Alt))
                    SendKey(Win32APIImports.VirtualKeys.LeftMenu, KeyState.Down);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.AltGr))
                    SendKey(Win32APIImports.VirtualKeys.RightMenu, KeyState.Down);

                SendKey(lowByte, KeyState.Down);
                SendKey(lowByte, KeyState.Up);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.Shift))
                    SendKey(Win32APIImports.VirtualKeys.Shift, KeyState.Up);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.Windows))
                    SendKey(Win32APIImports.VirtualKeys.LeftWindows, KeyState.Up);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.Control))
                    SendKey(Win32APIImports.VirtualKeys.Control, KeyState.Up);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.Alt))
                    SendKey(Win32APIImports.VirtualKeys.LeftMenu, KeyState.Up);

                if (modKey.HasFlag(Win32APIImports.ModifierKey.AltGr))
                    SendKey(Win32APIImports.VirtualKeys.RightMenu, KeyState.Up);

                if (text.Length > 0)
                    text = text.Remove(0, 1);
                else
                    text = string.Empty;
            }
        }
Exemplo n.º 4
0
 public static extern bool GetMenuItemInfo(IntPtr hMenu, uint uItem, bool fByPosition,
    ref Win32APIImports.MENUITEMINFO lpmii);