Esempio n. 1
0
            public void RegisterMAMEMessages()
            {
                // Retrieve our handle (needed when registering to MAME)
                HandleOfListener = this.Handle;

                // Register MAME messages
                OM_MAME_START = OSUtilities.RegisterWindowMessage(WinMsgUtils.OM_MAME_START);
                if (OM_MAME_START == 0)
                {
                    throw new Exception("error");
                }
                OM_MAME_STOP = OSUtilities.RegisterWindowMessage(WinMsgUtils.OM_MAME_STOP);
                if (OM_MAME_STOP == 0)
                {
                    throw new Exception("error");
                }
                OM_MAME_UPDATE_START = OSUtilities.RegisterWindowMessage(WinMsgUtils.OM_MAME_UPDATE_STATE);
                if (OM_MAME_UPDATE_START == 0)
                {
                    throw new Exception("error");
                }
                OM_MAME_REGISTER_CLIENT = OSUtilities.RegisterWindowMessage(WinMsgUtils.OM_MAME_REGISTER_CLIENT);
                if (OM_MAME_REGISTER_CLIENT == 0)
                {
                    throw new Exception("error");
                }
                OM_MAME_UNREGISTER_CLIENT = OSUtilities.RegisterWindowMessage(WinMsgUtils.OM_MAME_UNREGISTER_CLIENT);
                if (OM_MAME_UNREGISTER_CLIENT == 0)
                {
                    throw new Exception("error");
                }
                OM_MAME_GET_ID_STRING = OSUtilities.RegisterWindowMessage(WinMsgUtils.OM_MAME_GET_ID_STRING);
                if (OM_MAME_GET_ID_STRING == 0)
                {
                    throw new Exception("error");
                }


                // see if MAME or supermodel is already running
                var otherwnd = OSUtilities.FindWindow(WinMsgUtils.OUTPUT_WINDOW_CLASS, WinMsgUtils.OUTPUT_WINDOW_NAME);

                // If not found, try to found supermodel by process names
                if (otherwnd == IntPtr.Zero)
                {
                    var procs = Process.GetProcessesByName("supermodel");
                    if (procs.Length > 0)
                    {
                        procs[0].Refresh();
                        otherwnd = procs[0].MainWindowHandle;
                        //otherwnd = FindWindowEx(otherwnd, IntPtr.Zero, OUTPUT_WINDOW_NAME, IntPtr.Zero);
                    }
                }
                if (otherwnd != IntPtr.Zero)
                {
                    Message msg = new Message();
                    msg.WParam = otherwnd;
                    msg.LParam = IntPtr.Zero;
                    HandleMAMEStart(msg);
                }
            }
 private void chkBoxStartWithWindows_Click(object sender, EventArgs e)
 {
     vJoyManager.Config.Application.ShortcutStartWithWindowsCreated = !vJoyManager.Config.Application.ShortcutStartWithWindowsCreated;
     if (vJoyManager.Config.Application.ShortcutStartWithWindowsCreated)
     {
         // Create shortcut
         OSUtilities.CreateStartupShortcut("vJoyIOFeederGUI", "vJoyIOFeederGUI auto-startup");
     }
     else
     {
         OSUtilities.DeleteStartupShortcut("vJoyIOFeederGUI");
     }
 }
Esempio n. 3
0
            int HandleMAMEStart(Message msg)
            {
                HandleToMAMEWindow = msg.WParam;

                Reset_id_to_outname_cache();

                // register ourselves as a client
                OSUtilities.PostMessage(HandleToMAMEWindow, OM_MAME_REGISTER_CLIENT, HandleOfListener, (IntPtr)WinMsgUtils.CLIENT_ID);
                //WinMsgUtils.SendMessage(mame_target, om_mame_register_client, listener_hwnd, (IntPtr)WinMsgUtils.CLIENT_ID);

                // get the game name
                Map_id_to_outname(IntPtr.Zero);

                return(0);
            }
Esempio n. 4
0
            string Map_id_to_outname(IntPtr id)
            {
                // see if we have an entry in our map
                if (MapIDToName.ContainsKey(id))
                {
                    return(MapIDToName[id]);
                }
                // no entry yet; we have to ask
                OSUtilities.SendMessage(HandleToMAMEWindow, OM_MAME_GET_ID_STRING, HandleOfListener, id);

                // now see if we have the entry in our map
                if (MapIDToName.ContainsKey(id))
                {
                    return(MapIDToName[id]);
                }
                // if not, use an empty string
                return("");
            }
Esempio n. 5
0
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        static int Main(string[] args)
        {
            SharedData.Initialize(args);

            Console.Title = "BackForceFeeder v" + typeof(BFFManager).Assembly.GetName().Version.ToString() + " Made for Gamoover by njz3";

            Logger.Loggers += ConsoleLog;

            SharedData.Start();

            while (!OSUtilities.IsKeyPressed(ConsoleKey.Escape))
            {
                Thread.Sleep(500);
            }

            SharedData.Stop();

            return(0);
        } // Main
Esempio n. 6
0
        /// <summary>
        /// Start threads and managers
        /// </summary>
        public static void Start()
        {
            Logger.Start();
            Manager.Start();

            if (OSUtilities.IsUserAdministrator())
            {
                Logger.Log("[MAIN] Running as administrator, trying realtime priority", LogLevels.IMPORTANT);
            }
            else
            {
                Logger.Log("[MAIN] Running as standard user, trying realtime priority", LogLevels.IMPORTANT);
            }
            try {
                Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;
                if (Process.GetCurrentProcess().PriorityClass != ProcessPriorityClass.RealTime)
                {
                    Logger.Log("[MAIN] Setting realtime priority failed, got: " + Process.GetCurrentProcess().PriorityClass, LogLevels.IMPORTANT);
                }
            } catch (Exception ex) {
                Logger.Log("[MAIN] Setting realtime priority failed, falling back to high", LogLevels.IMPORTANT);
                Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
            }
        }
Esempio n. 7
0
 private static void OnAbout(object sender, EventArgs e)
 {
     MessageBox.Show(OSUtilities.AboutString(),
                     "About BackForceFeeder by njz3",
                     MessageBoxButtons.OK);
 }
Esempio n. 8
0
        public static void ProcessKeyStroke(KeyCodes key, KeyEmulationAPI keyAPI, bool newstate, bool oldstate)
        {
            // Leave early if no change
            if (newstate == oldstate)
            {
                return;
            }
            VirtualKeyCode keycode = 0;

            OSUtilities.DInputScanCodes scancode1 = 0;
            OSUtilities.DInputScanCodes scancode2 = 0;
            // Translation table
            switch (key)
            {
            case Configuration.KeyCodes.AltF4:
                // Special keycode for combined press
                if (keyAPI.HasFlag(KeyEmulationAPI.SendInput))
                {
                    if (newstate && (!oldstate))
                    {
                        OSUtilities.SendAltF4();
                    }
                }
                if (keyAPI.HasFlag(KeyEmulationAPI.DInput))
                {
                    scancode1 = OSUtilities.DInputScanCodes.DIK_LMENU;
                    scancode2 = OSUtilities.DInputScanCodes.DIK_F4;
                }
                break;

            case Configuration.KeyCodes.ESC:
                keycode = VirtualKeyCode.ESCAPE; scancode1 = OSUtilities.DInputScanCodes.DIK_ESCAPE;
                break;

            case Configuration.KeyCodes.ENTER:
                keycode = VirtualKeyCode.RETURN; scancode1 = OSUtilities.DInputScanCodes.DIK_RETURN;
                break;

            case Configuration.KeyCodes.TAB:
                keycode = VirtualKeyCode.TAB; scancode1 = OSUtilities.DInputScanCodes.DIK_TAB;
                break;

            case Configuration.KeyCodes.LCTRL:
                keycode = VirtualKeyCode.LCONTROL; scancode1 = OSUtilities.DInputScanCodes.DIK_LCONTROL;
                break;

            case Configuration.KeyCodes.RCTRL:
                keycode = VirtualKeyCode.RCONTROL; scancode1 = OSUtilities.DInputScanCodes.DIK_RCONTROL;
                break;

            case Configuration.KeyCodes.LSHIFT:
                keycode = VirtualKeyCode.LSHIFT; scancode1 = OSUtilities.DInputScanCodes.DIK_LSHIFT;
                break;

            case Configuration.KeyCodes.RSHIFT:
                keycode = VirtualKeyCode.RSHIFT; scancode1 = OSUtilities.DInputScanCodes.DIK_RSHIFT;
                break;

            case Configuration.KeyCodes.LALT:
                keycode = VirtualKeyCode.LMENU; scancode1 = OSUtilities.DInputScanCodes.DIK_LMENU;
                break;

            case Configuration.KeyCodes.RALT:
                keycode = VirtualKeyCode.RMENU; scancode1 = OSUtilities.DInputScanCodes.DIK_RMENU;
                break;

            case Configuration.KeyCodes.LEFT:
                keycode = VirtualKeyCode.LEFT; scancode1 = OSUtilities.DInputScanCodes.DIK_LEFT;
                break;

            case Configuration.KeyCodes.RIGHT:
                keycode = VirtualKeyCode.RIGHT; scancode1 = OSUtilities.DInputScanCodes.DIK_RIGHT;
                break;

            case Configuration.KeyCodes.UP:
                keycode = VirtualKeyCode.UP; scancode1 = OSUtilities.DInputScanCodes.DIK_UP;
                break;

            case Configuration.KeyCodes.DOWN:
                keycode = VirtualKeyCode.DOWN; scancode1 = OSUtilities.DInputScanCodes.DIK_DOWN;
                break;

            case Configuration.KeyCodes.F1:
            case Configuration.KeyCodes.F2:
            case Configuration.KeyCodes.F3:
            case Configuration.KeyCodes.F4:
            case Configuration.KeyCodes.F5:
            case Configuration.KeyCodes.F6:
            case Configuration.KeyCodes.F7:
            case Configuration.KeyCodes.F8:
            case Configuration.KeyCodes.F9:
            case Configuration.KeyCodes.F10:
                keycode   = (VirtualKeyCode)(VirtualKeyCode.F1 + (ushort)(key - Configuration.KeyCodes.F1));
                scancode1 = (OSUtilities.DInputScanCodes)(OSUtilities.DInputScanCodes.DIK_F1 + (ushort)(key - Configuration.KeyCodes.F1));
                break;

            case Configuration.KeyCodes.F11:
                keycode = VirtualKeyCode.F11; scancode1 = OSUtilities.DInputScanCodes.DIK_F11;
                break;

            case Configuration.KeyCodes.F12:
                keycode = VirtualKeyCode.F12; scancode1 = OSUtilities.DInputScanCodes.DIK_F12;
                break;

            case Configuration.KeyCodes.NUM0:
                keycode = VirtualKeyCode.VK_0; scancode1 = OSUtilities.DInputScanCodes.DIK_0;
                break;

            case Configuration.KeyCodes.NUM1:
            case Configuration.KeyCodes.NUM2:
            case Configuration.KeyCodes.NUM3:
            case Configuration.KeyCodes.NUM4:
            case Configuration.KeyCodes.NUM5:
            case Configuration.KeyCodes.NUM6:
            case Configuration.KeyCodes.NUM7:
            case Configuration.KeyCodes.NUM8:
            case Configuration.KeyCodes.NUM9:
                keycode   = (VirtualKeyCode)(VirtualKeyCode.VK_0 + (ushort)(key - Configuration.KeyCodes.F1));
                scancode1 = (OSUtilities.DInputScanCodes)(OSUtilities.DInputScanCodes.DIK_F1 + (ushort)(key - Configuration.KeyCodes.F1));
                break;

            case Configuration.KeyCodes.NUMPAD_0:
                keycode = VirtualKeyCode.NUMPAD0; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD0;
                break;

            case Configuration.KeyCodes.NUMPAD_1:
                keycode = VirtualKeyCode.NUMPAD1; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD1;
                break;

            case Configuration.KeyCodes.NUMPAD_2:
                keycode = VirtualKeyCode.NUMPAD2; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD2;
                break;

            case Configuration.KeyCodes.NUMPAD_3:
                keycode = VirtualKeyCode.NUMPAD3; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD3;
                break;

            case Configuration.KeyCodes.NUMPAD_4:
                keycode = VirtualKeyCode.NUMPAD4; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD4;
                break;

            case Configuration.KeyCodes.NUMPAD_5:
                keycode = VirtualKeyCode.NUMPAD5; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD5;
                break;

            case Configuration.KeyCodes.NUMPAD_6:
                keycode = VirtualKeyCode.NUMPAD6; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD6;
                break;

            case Configuration.KeyCodes.NUMPAD_7:
                keycode = VirtualKeyCode.NUMPAD7; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD7;
                break;

            case Configuration.KeyCodes.NUMPAD_8:
                keycode = VirtualKeyCode.NUMPAD8; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD8;
                break;

            case Configuration.KeyCodes.NUMPAD_9:
                keycode = VirtualKeyCode.NUMPAD9; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPAD9;
                break;

            case Configuration.KeyCodes.NUMPAD_DECIMAL:
                keycode = VirtualKeyCode.SEPARATOR; scancode1 = OSUtilities.DInputScanCodes.DIK_NUMPADCOMMA;
                break;

            case Configuration.KeyCodes.NUMPAD_DIVIDE:
                keycode = VirtualKeyCode.DIVIDE; scancode1 = OSUtilities.DInputScanCodes.DIK_DIVIDE;
                break;

            case Configuration.KeyCodes.NUMPAD_MULTIPLY:
                keycode = VirtualKeyCode.MULTIPLY; scancode1 = OSUtilities.DInputScanCodes.DIK_MULTIPLY;
                break;

            case Configuration.KeyCodes.A:
                keycode = VirtualKeyCode.VK_A; scancode1 = OSUtilities.DInputScanCodes.DIK_A;
                break;

            case Configuration.KeyCodes.B:
                keycode = VirtualKeyCode.VK_B; scancode1 = OSUtilities.DInputScanCodes.DIK_B;
                break;

            case Configuration.KeyCodes.C:
                keycode = VirtualKeyCode.VK_C; scancode1 = OSUtilities.DInputScanCodes.DIK_C;
                break;

            case Configuration.KeyCodes.D:
                keycode = VirtualKeyCode.VK_D; scancode1 = OSUtilities.DInputScanCodes.DIK_D;
                break;

            case Configuration.KeyCodes.E:
                keycode = VirtualKeyCode.VK_E; scancode1 = OSUtilities.DInputScanCodes.DIK_E;
                break;

            case Configuration.KeyCodes.F:
                keycode = VirtualKeyCode.VK_F; scancode1 = OSUtilities.DInputScanCodes.DIK_F;
                break;

            case Configuration.KeyCodes.G:
                keycode = VirtualKeyCode.VK_G; scancode1 = OSUtilities.DInputScanCodes.DIK_G;
                break;

            case Configuration.KeyCodes.H:
                keycode = VirtualKeyCode.VK_H; scancode1 = OSUtilities.DInputScanCodes.DIK_H;
                break;

            case Configuration.KeyCodes.I:
                keycode = VirtualKeyCode.VK_I; scancode1 = OSUtilities.DInputScanCodes.DIK_I;
                break;

            case Configuration.KeyCodes.J:
                keycode = VirtualKeyCode.VK_J; scancode1 = OSUtilities.DInputScanCodes.DIK_J;
                break;

            case Configuration.KeyCodes.K:
                keycode = VirtualKeyCode.VK_K; scancode1 = OSUtilities.DInputScanCodes.DIK_K;
                break;

            case Configuration.KeyCodes.L:
                keycode = VirtualKeyCode.VK_L; scancode1 = OSUtilities.DInputScanCodes.DIK_L;
                break;

            case Configuration.KeyCodes.M:
                keycode = VirtualKeyCode.VK_M; scancode1 = OSUtilities.DInputScanCodes.DIK_M;
                break;

            case Configuration.KeyCodes.N:
                keycode = VirtualKeyCode.VK_N; scancode1 = OSUtilities.DInputScanCodes.DIK_N;
                break;

            case Configuration.KeyCodes.O:
                keycode = VirtualKeyCode.VK_O; scancode1 = OSUtilities.DInputScanCodes.DIK_O;
                break;

            case Configuration.KeyCodes.P:
                keycode = VirtualKeyCode.VK_P; scancode1 = OSUtilities.DInputScanCodes.DIK_P;
                break;

            case Configuration.KeyCodes.Q:
                keycode = VirtualKeyCode.VK_Q; scancode1 = OSUtilities.DInputScanCodes.DIK_Q;
                break;

            case Configuration.KeyCodes.R:
                keycode = VirtualKeyCode.VK_R; scancode1 = OSUtilities.DInputScanCodes.DIK_R;
                break;

            case Configuration.KeyCodes.S:
                keycode = VirtualKeyCode.VK_S; scancode1 = OSUtilities.DInputScanCodes.DIK_S;
                break;

            case Configuration.KeyCodes.T:
                keycode = VirtualKeyCode.VK_T; scancode1 = OSUtilities.DInputScanCodes.DIK_T;
                break;

            case Configuration.KeyCodes.U:
                keycode = VirtualKeyCode.VK_U; scancode1 = OSUtilities.DInputScanCodes.DIK_U;
                break;

            case Configuration.KeyCodes.V:
                keycode = VirtualKeyCode.VK_V; scancode1 = OSUtilities.DInputScanCodes.DIK_V;
                break;

            case Configuration.KeyCodes.W:
                keycode = VirtualKeyCode.VK_W; scancode1 = OSUtilities.DInputScanCodes.DIK_W;
                break;

            case Configuration.KeyCodes.X:
                keycode = VirtualKeyCode.VK_X; scancode1 = OSUtilities.DInputScanCodes.DIK_X;
                break;

            case Configuration.KeyCodes.Y:
                keycode = VirtualKeyCode.VK_Y; scancode1 = OSUtilities.DInputScanCodes.DIK_Y;
                break;

            case Configuration.KeyCodes.Z:
                keycode = VirtualKeyCode.VK_Z; scancode1 = OSUtilities.DInputScanCodes.DIK_Z;
                break;

            case Configuration.KeyCodes.SPACE:
                keycode = VirtualKeyCode.SPACE; scancode1 = OSUtilities.DInputScanCodes.DIK_SPACE;
                break;

            default:
                break;
            }

            // Pressed?
            if (newstate && !oldstate)
            {
                Logger.Log("[KEY] " + key.ToString() + " pressed with " + keyAPI.ToString(), LogLevels.INFORMATIVE);
                if (keyAPI.HasFlag(KeyEmulationAPI.DInput))
                {
                    if (scancode1 != 0)
                    {
                        OSUtilities.SendKeybDInputDown(scancode1);
                    }
                    if (scancode2 != 0)
                    {
                        OSUtilities.SendKeybDInputDown(scancode2);
                    }
                }
                if (keyAPI.HasFlag(KeyEmulationAPI.SendInput))
                {
                    if (keycode != 0)
                    {
                        OSUtilities.SendKeyDown(keycode);
                    }
                }
            }
            // Released?
            if (!newstate && oldstate)
            {
                Logger.Log("[KEY] " + key.ToString() + " released with " + keyAPI.ToString(), LogLevels.INFORMATIVE);
                if (keyAPI.HasFlag(KeyEmulationAPI.DInput))
                {
                    if (scancode1 != 0)
                    {
                        OSUtilities.SendKeybDInputUp(scancode1);
                    }
                    if (scancode2 != 0)
                    {
                        OSUtilities.SendKeybDInputUp(scancode2);
                    }
                }
                if (keyAPI.HasFlag(KeyEmulationAPI.SendInput))
                {
                    if (keycode != 0)
                    {
                        OSUtilities.SendKeyUp(keycode);
                    }
                }
            }
        }