Esempio n. 1
0
        /// <summary>
        /// Read memory values in .cfg file, whose name depends on the MD5 hash of the targeted exe.
        /// Mostly used for PC games
        /// </summary>
        /// <param name="GameData_Folder"></param>
        protected virtual void ReadGameDataFromMd5Hash(String GameData_Folder)
        {
            String ConfigFile = AppDomain.CurrentDomain.BaseDirectory + GameData_Folder + @"\" + _TargetProcess_Md5Hash + ".cfg";

            if (File.Exists(ConfigFile))
            {
                Logger.WriteLog("Reading game memory setting from " + ConfigFile);
                using (StreamReader sr = new StreamReader(ConfigFile))
                {
                    String line;
                    String FieldName = String.Empty;
                    line = sr.ReadLine();
                    while (line != null)
                    {
                        String[] buffer = line.Split('=');
                        if (buffer.Length > 1)
                        {
                            try
                            {
                                FieldName = "_" + buffer[0].Trim();
                                if (buffer[0].Contains("Nop"))
                                {
                                    NopStruct n = new NopStruct(buffer[1].Trim());
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, n);
                                    Logger.WriteLog(FieldName + " successfully set to following value : 0x" + n.MemoryOffset.ToString("X8") + "|" + n.Length.ToString());
                                }
                                else if (buffer[0].Contains("DIK"))
                                {
                                    HardwareScanCode sc = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), buffer[1].Trim());
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, sc);
                                    Logger.WriteLog(FieldName + " successfully set to following value :" + sc.ToString());
                                }
                                else if (buffer[0].Contains("VK"))
                                {
                                    VirtualKeyCode vk = (VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), buffer[1].Trim());
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, vk);
                                    Logger.WriteLog(FieldName + " successfully set to following value :" + vk.ToString());
                                }
                                else
                                {
                                    UInt32 v = UInt32.Parse(buffer[1].Substring(3).Trim(), NumberStyles.HexNumber);
                                    this.GetType().GetField(FieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase).SetValue(this, v);
                                    Logger.WriteLog(FieldName + " successfully set to following value : 0x" + v.ToString("X8"));
                                }
                            }
                            catch (Exception ex)
                            {
                                Logger.WriteLog("Error reading game data for " + FieldName + " : " + ex.Message.ToString());
                            }
                        }
                        line = sr.ReadLine();
                    }
                    sr.Close();
                }
            }
            else
            {
                Logger.WriteLog("File not found : " + ConfigFile);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Constructors, Setting default values.
 /// This will be of use if no .INI file is found at launch
 /// </summary>
 /// <param name="PlayerID"></param>
 public PlayerSettings(int PlayerID)
 {
     _ID = PlayerID;
     if (_ID == 1)
     {
         _DIK_VirtualMouseButton_Left   = HardwareScanCode.DIK_T;
         _DIK_VirtualMouseButton_Middle = HardwareScanCode.DIK_C;
         _DIK_VirtualMouseButton_Right  = HardwareScanCode.DIK_F;
     }
     else if (_ID == 2)
     {
         _DIK_VirtualMouseButton_Left   = HardwareScanCode.DIK_Y;
         _DIK_VirtualMouseButton_Middle = HardwareScanCode.DIK_V;
         _DIK_VirtualMouseButton_Right  = HardwareScanCode.DIK_G;
     }
     else if (_ID == 3)
     {
         _DIK_VirtualMouseButton_Left   = HardwareScanCode.DIK_U;
         _DIK_VirtualMouseButton_Middle = HardwareScanCode.DIK_B;
         _DIK_VirtualMouseButton_Right  = HardwareScanCode.DIK_H;
     }
     else if (_ID == 4)
     {
         _DIK_VirtualMouseButton_Left   = HardwareScanCode.DIK_I;
         _DIK_VirtualMouseButton_Middle = HardwareScanCode.DIK_N;
         _DIK_VirtualMouseButton_Right  = HardwareScanCode.DIK_J;
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Read Silent Hill the Arcade Key mapping
        /// </summary>
        public void Read_Sha_Conf()
        {
            String appData = Environment.GetEnvironmentVariable("appdata").ToString();;

            if (File.Exists(appData + SHA_CONF_FILEPATH))
            {
                byte[] fileBytes = File.ReadAllBytes(appData + @"\bemani_config\sha_v01.cfg");
                int    Offset    = 0x622;
                int    n         = (int)fileBytes[0];
                for (int i = 0; i < n; i++)
                {
                    int j = Offset + (i * 4);
                    switch (fileBytes[j + 1])
                    {
                    case 0x01:
                    {
                        _DIK_Sha_Test = (HardwareScanCode)fileBytes[j];
                    } break;

                    case 0x02:
                    {
                        _DIK_Sha_Service = (HardwareScanCode)fileBytes[j];
                    } break;

                    case 0x10:
                    {
                        _DIK_Sha_P1_Start = (HardwareScanCode)fileBytes[j];
                    } break;

                    case 0x11:
                    {
                        _DIK_Sha_P1_Trigger = (HardwareScanCode)fileBytes[j];
                    } break;

                    case 0x20:
                    {
                        _DIK_Sha_P2_Start = (HardwareScanCode)fileBytes[j];
                    } break;

                    case 0x21:
                    {
                        _DIK_Sha_P2_Trigger = (HardwareScanCode)fileBytes[j];
                    } break;

                    case 0xFF:
                    {
                        _DIK_Sha_Exit = (HardwareScanCode)fileBytes[j];
                    } break;
                    }
                }
            }
            else
            {
                //MessageBox.Show("Silent Hill the Arcade : " + appData + @"\bemani_config\sha_v01.cfg not found", "DemulShooter Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Constructor
 /// </summary>
 public Game_Dolphin5(String RomName, UInt32 DinputNumber, HardwareScanCode DIK_P2_LClick, HardwareScanCode DIK_P2_MClick, HardwareScanCode DIK_P2_RClick, double _ForcedXratio, bool DisableInputHack, bool Verbose)
     : base(RomName, "Dolphin", _ForcedXratio, DisableInputHack, Verbose)
 {
     _DinputNumber      = DinputNumber;
     _DIK_P2_Key_LClick = DIK_P2_LClick;
     _DIK_P2_Key_MClick = DIK_P2_MClick;
     _DIK_P2_Key_RClick = DIK_P2_RClick;
     _KnownMd5Prints.Add("Dolphin_x86 v5.0", "9660ec7cddf093a1807cb25fe0946b8e");
     _tProcess.Start();
     Logger.WriteLog("Waiting for Dolphin " + _RomName + " game to hook.....");
 }
Esempio n. 5
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Game_TtxGundam(String RomName, bool Pedal1_Enable, HardwareScanCode Pedal1_Key, bool Pedal2_Enable, HardwareScanCode Pedal2_Key, double _ForcedXratio, bool DisableInputHack, bool Verbose)
            : base(RomName, "game", _ForcedXratio, DisableInputHack, Verbose)
        {
            _Pedal1_Enable = Pedal1_Enable;
            _Pedal1_Key    = Pedal1_Key;
            _Pedal2_Enable = Pedal2_Enable;
            _Pedal2_Key    = Pedal2_Key;
            _KnownMd5Prints.Add("Gundam : SoZ v1.01 - Dual Player, Unpatched I/O", "70af03a21a42d9042065fc65b7eb56f9");
            _KnownMd5Prints.Add("Gundam : SoZ v1.01 - Single Player, Pathched I/O", "d8cd539967cc3c23f620139ab4669d30");
            _KnownMd5Prints.Add("Gundam : SoZ v1.01 - Dual Player, Patched I/O", "c31187a57fd5ab6864b78eaa755ae3f0");

            _tProcess.Start();
            Logger.WriteLog("Waiting for Taito Type X " + _RomName + " game to hook.....");
        }
Esempio n. 6
0
        /// <summary>
        /// Simulate a keyboard key action (up or down)
        /// </summary>
        /// <param name="Keycode">Hardware ScanCode of the key to simulate</param>
        /// <param name="KeybdInputFlags">State of the key. (0=Down, 1 = Up)</param>
        private void SendKey(HardwareScanCode Keycode, KeybdInputFlags KeybdInputFlags)
        {
            INPUT[] InputData = new INPUT[1];

            InputData[0].type           = InputType.INPUT_KEYBOARD;
            InputData[0].ki.wScan       = Keycode;
            InputData[0].ki.dwFlags     = KeybdInputFlags;
            InputData[0].ki.time        = 0;
            InputData[0].ki.dwExtraInfo = IntPtr.Zero;

            if (Win32API.SendInput(1, InputData, Marshal.SizeOf(typeof(INPUT))) == 0)
            {
                Logger.WriteLog("SendInput API failed : wScan=" + Keycode.ToString() + ", dwFlags=" + KeybdInputFlags.ToString());
                Logger.WriteLog("GetLastError returned : " + Marshal.GetLastWin32Error().ToString());
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Convert a HardwareScanCode to a corresponding VirtualKeyCode
        /// </summary>
        /// <param name="ScanCode">Hardware Scancode to convert</param>
        /// <returns></returns>
        public VirtualKeyCode MapScanCodeToVirtualKeyCode(HardwareScanCode ScanCode)
        {
            UInt32 Vk = Win32API.MapVirtualKey((UInt32)ScanCode, VirtualKeyMapType.MAPVK_VSC_TO_VK);

            return((VirtualKeyCode)Vk);
        }
Esempio n. 8
0
 protected void SendKeyUp(HardwareScanCode Keycode)
 {
     SendKey(Keycode, KeybdInputFlags.KEYEVENTF_KEYUP | KeybdInputFlags.KEYEVENTF_SCANCODE);
 }
Esempio n. 9
0
 /// <summary>
 /// Send KeyUp and KeyDown separated by a desired delay
 /// </summary>
 /// <param name="Keycode">DirectInput Keycode (hardware scan code)</param>
 /// <param name="DelayPressed">Delay in milliseconds</param>
 protected void SendKeyStroke(HardwareScanCode Keycode, int DelayPressed)
 {
     SendKeyDown(Keycode);
     System.Threading.Thread.Sleep(DelayPressed);
     SendKeyUp(Keycode);
 }
Esempio n. 10
0
        /// <summary>
        /// Main application config file
        /// </summary>
        /// <param name="ConfigFilePath">Path to DemulShooter config file</param>
        public void ReadDsConfig(String ConfigFilePath)
        {
            try
            {
                using (StreamReader sr = new StreamReader(ConfigFilePath))
                {
                    String   line = sr.ReadLine();
                    String[] buffer;
                    while (line != null)
                    {
                        if (!line.StartsWith(";"))
                        {
                            buffer = line.Split('=');
                            if (buffer.Length == 2)
                            {
                                String StrKey   = buffer[0].Trim();
                                String StrValue = buffer[1].Trim();

                                // There will never be more than 9 players (even more than 4) so we can assume that
                                // removing only first 2 char is enough without verification
                                if (StrKey.ToLower().StartsWith("p1"))
                                {
                                    if (!GetPlayerSettings(1).ParseIniParameter(StrKey.ToLower().Substring(2), StrValue))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().StartsWith("p2"))
                                {
                                    if (!GetPlayerSettings(2).ParseIniParameter(StrKey.ToLower().Substring(2), StrValue))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().StartsWith("p3"))
                                {
                                    if (!GetPlayerSettings(3).ParseIniParameter(StrKey.ToLower().Substring(2), StrValue))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().StartsWith("p4"))
                                {
                                    if (!GetPlayerSettings(4).ParseIniParameter(StrKey.ToLower().Substring(2), StrValue))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("act_labs_offset_enable"))
                                {
                                    if (!bool.TryParse(StrValue, out _Act_Labs_Offset_Enable))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("act_labs_display_crosshair"))
                                {
                                    if (!bool.TryParse(StrValue, out _Act_Labs_Display_Crosshair))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("m2_p1_ch"))
                                {
                                    try
                                    {
                                        _DIK_M2_Crosshair_P1 = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("m2_p2_ch"))
                                {
                                    try
                                    {
                                        _DIK_M2_Crosshair_P2 = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("m2_ch_vis"))
                                {
                                    try
                                    {
                                        _DIK_M2_Crosshair_Visibility = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("gsoz_p1_pedal_enable"))
                                {
                                    if (!bool.TryParse(StrValue, out _Gsoz_Pedal_P1_Enabled))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("gsoz_p2_pedal_enable"))
                                {
                                    if (!bool.TryParse(StrValue, out _Gsoz_Pedal_P2_Enabled))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("gsoz_p1_pedal_key"))
                                {
                                    try
                                    {
                                        _DIK_Gsoz_Pedal_P1 = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("gsoz_p2_pedal_key"))
                                {
                                    try
                                    {
                                        _DIK_Gsoz_Pedal_P2 = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("dolphin_p2_lclick"))
                                {
                                    try
                                    {
                                        _DIK_Dolphin_P2_LClick = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("dolphin_p2_mclick"))
                                {
                                    try
                                    {
                                        _DIK_Dolphin_P2_MClick = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("dolphin_p2_rclick"))
                                {
                                    try
                                    {
                                        _DIK_Dolphin_P2_RClick = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
                                    }
                                    catch { Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid"); }
                                }
                                else if (StrKey.ToLower().Equals("hf3_path"))
                                {
                                    _HF3_Path = StrValue;
                                }
                                else if (StrKey.ToLower().Equals("hf3_coversensibility"))
                                {
                                    if (!int.TryParse(StrValue, out _HF3_CoverSensibility))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("hf4_path"))
                                {
                                    _HF4_Path = StrValue;
                                }
                                else if (StrKey.ToLower().Equals("hf4_coversensibility"))
                                {
                                    if (!int.TryParse(StrValue, out _HF4_CoverSensibility))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("opghost_enablefreeplay"))
                                {
                                    if (!bool.TryParse(StrValue, out _OpGHost_EnableFreeplay))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("opghost_creditstostart"))
                                {
                                    if (!int.TryParse(StrValue, out _OpGhost_CreditsToStart))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("opghost_creditstocontinue"))
                                {
                                    if (!int.TryParse(StrValue, out _OpGhost_CreditsToContinue))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("opghost_coinsbycredits"))
                                {
                                    if (!int.TryParse(StrValue, out _OpGhost_CoinsByCredits))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("outputenabled"))
                                {
                                    if (!bool.TryParse(StrValue, out _OutputEnabled))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("outputpollingdelay"))
                                {
                                    if (!int.TryParse(StrValue, out _OutputPollingDelay))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("outputcustomdamageddelay"))
                                {
                                    if (!int.TryParse(StrValue, out _OutputCustomDamagedDelay))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("outputcustomrecoilondelay"))
                                {
                                    if (!int.TryParse(StrValue, out _OutputCustomRecoilOnDelay))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                                else if (StrKey.ToLower().Equals("outputcustomrecoiloffdelay"))
                                {
                                    if (!int.TryParse(StrValue, out _OutputCustomRecoilOffDelay))
                                    {
                                        Logger.WriteLog("Error parsing " + StrKey + " value in INI file : " + StrValue + " is not valid");
                                    }
                                }
                            }
                        }
                        line = sr.ReadLine();
                    }
                    sr.Close();
                    Logger.WriteLog("Configuration file succesfuly loaded");
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("Error reading " + ConfigFilePath + " : " + ex.Message);
            }
        }
Esempio n. 11
0
 /// <summary>
 /// Reading and parsing existing confil file
 /// </summary>
 public bool ParseIniParameter(string StrKey, string StrValue)
 {
     if (StrKey.Equals("mode"))
     {
         _Mode = StrValue.ToUpper();
     }
     else if (StrKey.Equals("devicename"))
     {
         _DeviceName = StrValue;
     }
     else if (StrKey.Equals("hidaxisx"))
     {
         try
         {
             _HidAxis_X = Convert.ToByte(StrValue, 16);
         }
         catch { return(false); }
     }
     else if (StrKey.Equals("hidaxisy"))
     {
         try
         {
             _HidAxis_Y = Convert.ToByte(StrValue, 16);
         }
         catch { return(false); }
     }
     else if (StrKey.Equals("invertaxisx"))
     {
         if (!bool.TryParse(StrValue, out _InvertAxis_X))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("invertaxisy"))
     {
         if (!bool.TryParse(StrValue, out _InvertAxis_Y))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("hidbtnonscreentrigger"))
     {
         if (!int.TryParse(StrValue, out _HidButton_OnScreenTrigger))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("hidbtnoffscreentrigger"))
     {
         if (!int.TryParse(StrValue, out _HidButton_OffScreenTrigger))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("hidbtnaction"))
     {
         if (!int.TryParse(StrValue, out _HidButton_Action))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("gamepadleftclick"))
     {
         try
         {
             _Gamepad_LeftClick = (XinputButtonFlags)Enum.Parse(typeof(XinputButtonFlags), StrValue);
         }
         catch { return(false); }
     }
     else if (StrKey.Equals("gamepadmiddleclick"))
     {
         try
         {
             _Gamepad_MiddleClick = (XinputButtonFlags)Enum.Parse(typeof(XinputButtonFlags), StrValue);
         }
         catch { return(false); }
     }
     else if (StrKey.Equals("gamepadrightclick"))
     {
         try
         {
             _Gamepad_RightClick = (XinputButtonFlags)Enum.Parse(typeof(XinputButtonFlags), StrValue);
         }
         catch { return(false); }
     }
     else if (StrKey.Equals("gamepadstick"))
     {
         _Gamepad_Stick = StrValue.ToUpper();
     }
     else if (StrKey.Equals("gamepadvibrationenabled"))
     {
         if (!int.TryParse(StrValue, out _Gamepad_VibrationEnabled))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("gamepadvibrationlength"))
     {
         if (!int.TryParse(StrValue, out _Gamepad_VibrationLength))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("gamepadvibrationstrength"))
     {
         if (!int.TryParse(StrValue, out _Gamepad_VibrationStrength))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("act_labs_offset_x"))
     {
         if (!int.TryParse(StrValue, out _Act_Labs_OffsetX))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("act_labs_offset_y"))
     {
         if (!int.TryParse(StrValue, out _Act_Labs_OffsetY))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("analog_calibration_override"))
     {
         if (!bool.TryParse(StrValue, out _AnalogAxisRangeOverride))
         {
             return(false);
         }
         ;
     }
     else if (StrKey.Equals("analog_manual_xmin"))
     {
         if (!int.TryParse(StrValue, out _AnalogManual_Xmin))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("analog_manual_xmax"))
     {
         if (!int.TryParse(StrValue, out _AnalogManual_Xmax))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("analog_manual_ymin"))
     {
         if (!int.TryParse(StrValue, out _AnalogManual_Ymin))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("analog_manual_ymax"))
     {
         if (!int.TryParse(StrValue, out _AnalogManual_Ymax))
         {
             return(false);
         }
     }
     else if (StrKey.Equals("virtualmousebuttons_enable"))
     {
         if (!bool.TryParse(StrValue, out _VirtualMouseButtonsEnabled))
         {
             return(false);
         }
         ;
     }
     else if (StrKey.Equals("virtualmousebuttonleft_key"))
     {
         try
         {
             _DIK_VirtualMouseButton_Left = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
         }
         catch { return(false); }
     }
     else if (StrKey.Equals("virtualmousebuttonmiddle_key"))
     {
         try
         {
             _DIK_VirtualMouseButton_Middle = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
         }
         catch { return(false); }
     }
     else if (StrKey.Equals("virtualmousebuttonright_key"))
     {
         try
         {
             _DIK_VirtualMouseButton_Right = (HardwareScanCode)Enum.Parse(typeof(HardwareScanCode), StrValue);
         }
         catch { return(false); }
     }
     return(true);
 }