/// <summary>
        /// Deletes the registry sub key.
        /// </summary>
        /// <param name="key">The key.</param>
        public static void DeleteKey(this RegistryKey key)
        {
            var startingKey = key.OriginatingHive();
            var path        = key.GetPath();

            var lastIndexOf = path.LastIndexOf('\\');
            var keyName     = path.Substring(lastIndexOf + 1);
            var parentPath  = path.Substring(0, lastIndexOf);
            var parentKey   = startingKey.OpenSubKey(parentPath, true);

            parentKey.DeleteSubKeyTree(keyName);
        }