public static void LoadSettingsFromRegistry(string companyName, string applicationName, bool forCurrentUserOnly)
        {
            appSettingsDataset.Clear();

            RegistryKey regKey;

            if (forCurrentUserOnly)
            {
                regKey = Registry.CurrentUser.CreateSubKey("Software\\" + companyName + "\\" + applicationName);
            }
            else
            {
                regKey = Registry.LocalMachine.CreateSubKey("Software\\" + companyName + "\\" + applicationName);
            }

            string[] subKeys = regKey.GetSubKeyNames();

            for (int subKeyIndex = 0; subKeyIndex < subKeys.Length; subKeyIndex++)
            {
                RegistryKey subKey = regKey.OpenSubKey(subKeys[subKeyIndex]);
                string[]    values = subKey.GetValueNames();

                for (int valueIndex = 0; valueIndex < values.Length; valueIndex++)
                {
                    SetSetting(subKeys[subKeyIndex], values[valueIndex], Convert.ToString(subKey.GetValue(values[valueIndex])));
                }
            }

            // Load recently used files
            RegistryKey recentlyUsedFiles = regKey.CreateSubKey("9EF852E5-C9EF-4163-8D05-95EEBEFE999B-Recently Used Files");

            string[] files = (string[])recentlyUsedFiles.GetValue("Files");

            for (int index = 0; index < files.Length; index++)
            {
                appSettingsDataset.RecentlyUsedFiles.AddRecentlyUsedFilesRow(files[index]);
            }

            appSettingsDataset.AcceptChanges();
        }