private WindowsBrowser getBrowserFromRegistryEntry( Regor regor, int key, String subKey, String exeKey, Map exesToBrowserObjs) throws RegistryErrorException { WindowsBrowser winBrowser = null; int key2 = regor.openKey(key, subKey); List values = regor.listValueNames(key2); // boolean fndPath = false; for (int x = 0; values != null && x < values.size() && winBrowser == null; x++) { byte[] buf = regor.readValue(key2, (String) values.get(x)); String path = buf != null ? Regor.parseValue(buf) : ""; String lpath = path.toLowerCase(); if (lpath.endsWith(exeKey)) { winBrowser = (WindowsBrowser) exesToBrowserObjs.get(exeKey); // get path to exe and set it in winBrowser object StringTokenizer tokenizer = new StringTokenizer(path, "\\", false); StringBuffer pathBuf = new StringBuffer(); int tokCnt = tokenizer.countTokens(); // we want to ignore the last token for (int idx = 1; idx < tokCnt; idx++) { pathBuf.append(tokenizer.nextToken()); pathBuf.append('\\'); } winBrowser.setPathToExe(pathBuf.toString()); } } return winBrowser; }