public static final void register(String prefix, HashMap<String, String> map, Path appFile, Path iconDir) {
		String appPath = appFile.normalize().toAbsolutePath().toString();
		WindowsRegistry reg = new WindowsRegistry(true);
		for (String extension : map.keySet()) {
			// Make the entry that points to the app's information for the extension
			String key = SOFTWARE_CLASSES + "." + extension;
			reg.deleteKey(key);
			reg.createKey(key);
			String appKey = prefix + "_" + extension.toUpperCase();
			reg.writeStringValue(key, "", appKey);

			// Make the entry for the extension
			String baseKey = SOFTWARE_CLASSES + appKey;
			reg.deleteKey(baseKey);
			reg.createKey(baseKey);
			reg.writeStringValue(baseKey, "", map.get(extension));
			key = baseKey + "\\DefaultIcon";
			reg.deleteKey(key);
			reg.createKey(key);
			reg.writeStringValue(key, "", "\"" + iconDir.resolve(extension + ".ico").normalize().toAbsolutePath().toString() + "\"");
			key = baseKey + "\\shell";
			reg.deleteKey(key);
			reg.createKey(key);
			reg.writeStringValue(key, "", "open");
			key += "\\open";
			reg.deleteKey(key);
			reg.createKey(key);
			reg.writeStringValue(key, "", "&Open");
			key += "\\command";
			reg.deleteKey(key);
			reg.createKey(key);
			reg.writeStringValue(key, "", "\"" + appPath + "\" \"%1\"");
		}
	}