IntPtr minecraftHWND = IntPtr.Zero; // Data.mcProcess is the same.
        private void Hook_OnHookKeyPressed(HookKeyPressArgs args)
        {
            if (minecraftHWND.Equals(IntPtr.Zero))
            {
                minecraftHWND = staticMC.MainWindowHandle;
            }

            IntPtr fore = GetForegroundWindow();

            if (Data.hud != null)
            {
                if (!minecraftHWND.Equals(fore) &&
                    !Data.hud.Handle.Equals(fore))
                {
                    return;
                }
            }
            else
            if (!minecraftHWND.Equals(fore))
            {
                return;
            }



            bool ctrlDown = GetKeyDown(Keys.LControlKey) ||
                            GetKeyDown(Keys.RControlKey);

            if (!ctrlDown)
            {
                return;
            }

            foreach (Keybind kb in Data.keybinds.keybinds)
            {
                if (kb.key == args.pressed)
                {
                    string text = kb.game.gameInternalName;

                    if (Data.hud != null && text.Equals
                            (KeybindManager.INTERN_GUI))
                    {
                        Data.hud.ToggleVisible();
                        continue;
                    }

                    Thread.Sleep(50);
                    SendKeys.SendWait("/");
                    Thread.Sleep(50);
                    Clipboard.SetText(text);
                    SendKeys.SendWait("v");
                    Thread.Sleep(50);
                    SendKeys.SendWait("{ENTER}");
                    break;
                }
            }
        }
Exemple #2
0
 private IntPtr KeyboardHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
 {
     if (nCode >= 0 && wParam == (IntPtr)0x100) // WM_KEYDOWN
     {
         int              vkCode = Marshal.ReadInt32(lParam);
         Keys             key    = (Keys)vkCode;
         HookKeyPressArgs args   = new HookKeyPressArgs(key);
         OnHookKeyPressed?.Invoke(args);
     }
     return(CallNextHookEx(_keyboardHookID, nCode, wParam, lParam));
 }