private void locateKitsInRegistry(String baseKey) {
    String[] versions = {VERSION_KIT_8, VERSION_KIT_81};
    String[] keys = {REGISTRY_KIT_8, REGISTRY_KIT_81};

    for (int i = 0; i != keys.length; ++i) {
      try {
        File kitDir =
            GFileUtils.canonicalise(
                new File(
                    windowsRegistry.getStringValue(
                        WindowsRegistry.Key.HKEY_LOCAL_MACHINE,
                        baseKey + REGISTRY_ROOTPATH_KIT,
                        keys[i])));
        if (isWindowsSdk(kitDir)) {
          LOGGER.debug("Found Windows Kit {} at {}", versions[i], kitDir);
          addSdk(kitDir, versions[i], NAME_KIT + " " + versions[i]);
        } else {
          LOGGER.debug(
              "Ignoring candidate Windows Kit directory {} as it does not look like a Windows Kit installation.",
              kitDir);
        }
      } catch (MissingRegistryEntryException e) {
        // Ignore the version if the string cannot be read
      }
    }
  }
  private void locateSdksInRegistry(String baseKey) {
    try {
      List<String> subkeys =
          windowsRegistry.getSubkeys(
              WindowsRegistry.Key.HKEY_LOCAL_MACHINE, baseKey + REGISTRY_ROOTPATH_SDK);
      for (String subkey : subkeys) {
        try {
          String basePath = baseKey + REGISTRY_ROOTPATH_SDK + "\\" + subkey;
          File sdkDir =
              GFileUtils.canonicalise(
                  new File(
                      windowsRegistry.getStringValue(
                          WindowsRegistry.Key.HKEY_LOCAL_MACHINE, basePath, REGISTRY_FOLDER)));
          String version =
              formatVersion(
                  windowsRegistry.getStringValue(
                      WindowsRegistry.Key.HKEY_LOCAL_MACHINE, basePath, REGISTRY_VERSION));
          String name =
              windowsRegistry.getStringValue(
                  WindowsRegistry.Key.HKEY_LOCAL_MACHINE, basePath, REGISTRY_NAME);

          if (isWindowsSdk(sdkDir)) {
            LOGGER.debug("Found Windows SDK {} at {}", version, sdkDir);
            addSdk(sdkDir, version, name);
          } else {
            LOGGER.debug(
                "Ignoring candidate Windows SDK directory {} as it does not look like a Windows SDK installation.",
                sdkDir);
          }
        } catch (MissingRegistryEntryException e) {
          // Ignore the subkey if it doesn't have a folder and version
        }
      }
    } catch (MissingRegistryEntryException e) {
      // No SDK information available in the registry
    }
  }