static jboolean GetPublicJREHome(char *buf, jint bufsize) { HKEY key, subkey; char version[MAXPATHLEN]; // Find the current version of the JRE if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) { return JNI_FALSE; } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { RegCloseKey(key); return JNI_FALSE; } // Find directory where the current version is installed. if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { RegCloseKey(key); return JNI_FALSE; } if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) { RegCloseKey(key); RegCloseKey(subkey); return JNI_FALSE; } RegCloseKey(key); RegCloseKey(subkey); return JNI_TRUE; }
static jboolean GetPublicJREHome(char *buf, jint bufsize) { HKEY key, subkey; char version[MAXPATHLEN]; /* Find the current version of the JRE */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) { fprintf(stderr, "Error opening registry key '" JRE_KEY "'\n"); return JNI_FALSE; } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { fprintf(stderr, "Failed reading value of registry key:\n\t" JRE_KEY "\\CurrentVersion\n"); RegCloseKey(key); return JNI_FALSE; } if (strcmp(version, DOTRELEASE) != 0) { fprintf(stderr, "Registry key '" JRE_KEY "\\CurrentVersion'\nhas " "value '%s', but '" DOTRELEASE "' is required.\n", version); RegCloseKey(key); return JNI_FALSE; } /* Find directory where the current version is installed. */ if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { fprintf(stderr, "Error opening registry key '" JRE_KEY "\\%s'\n", version); RegCloseKey(key); return JNI_FALSE; } if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) { fprintf(stderr, "Failed reading value of registry key:\n\t" JRE_KEY "\\%s\\JavaHome\n", version); RegCloseKey(key); RegCloseKey(subkey); return JNI_FALSE; } if (_launcher_debug) { char micro[MAXPATHLEN]; if (!GetStringFromRegistry(subkey, "MicroVersion", micro, sizeof(micro))) { printf("Warning: Can't read MicroVersion\n"); micro[0] = '\0'; } printf("Version major.minor.micro = %s.%s\n", version, micro); } RegCloseKey(key); RegCloseKey(subkey); return JNI_TRUE; }
static jboolean GetPublicJREHome(char *buf, jint bufsize) { HKEY key, subkey; char version[MAXPATHLEN]; /* Find the current version of the JRE */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) { fprintf(stderr, "Error opening registry key '" JRE_KEY "'\n"); return JNI_FALSE; } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { fprintf(stderr, "Failed reading value of registry key:\n\t" JRE_KEY "\\CurrentVersion\n"); RegCloseKey(key); return JNI_FALSE; } /* Check if the version is good */ if (!versionOk(version)) { RegCloseKey(key); return JNI_FALSE; } /* Find directory where the current version is installed. */ if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { fprintf(stderr, "Error opening registry key '" JRE_KEY "\\%s'\n", version); RegCloseKey(key); return JNI_FALSE; } if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) { fprintf(stderr, "Failed reading value of registry key:\n\t" JRE_KEY "\\%s\\JavaHome\n", version); RegCloseKey(key); RegCloseKey(subkey); return JNI_FALSE; } RegCloseKey(key); RegCloseKey(subkey); return JNI_TRUE; }
static bool GetJREPathFromRegistry(char* path, size_t pathSize, const char* arch) { HKEY key, subkey; char version[MAXPATHLEN]; /* * Note: There is a very similar implementation of the following * registry reading code in the Windows java control panel (javacp.cpl). * If there are bugs here, a similar bug probably exists there. Hence, * changes here require inspection there. */ // Find the current version of the JRE if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_REG_KEY, 0, KEY_READ, &key) != 0) { return false; } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { RegCloseKey(key); return false; } /*if (strcmp(version, wantedVersion) != 0) { RegCloseKey(key); return false; }*/ // Find directory where the current version is installed. if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { RegCloseKey(key); return false; } if (!GetStringFromRegistry(subkey, "JavaHome", path, pathSize)) { RegCloseKey(key); RegCloseKey(subkey); return false; } RegCloseKey(key); RegCloseKey(subkey); simpleLog_logL(LOG_LEVEL_NOTICE, "JRE found in registry!"); return true; }
/* * idnGetInstallDir - get idn wrapper install directory */ BOOL idnGetInstallDir(char *dir, size_t len) { /* No need to look at HKEY_CURRENT_USER */ BOOL v = GetStringFromRegistry(IDNVAL_INSDIR, dir, len, IDN_GLOBAL); idnLogPrintf(idn_log_level_trace, "idnGetInstallDir: %-.100s\n", (v == TRUE) ? dir : "<none>"); return (v); }
/* * idnGetLogFile - refer to log file */ BOOL idnGetLogFile(char *file, size_t len) { BOOL v = GetStringFromRegistry(IDNVAL_LOGFILE, file, len, IDN_GLOBAL|IDN_CURUSER); idnLogPrintf(idn_log_level_trace, "idnGetLogFile: %-.100s\n", (v == TRUE) ? file : "<none>"); return (v); }
static void GetPublicJREHome(char* buf, jint bufsize) { HKEY key, subkey; char version[MAX_PATH]; /* Поиск текущей версии JRE */ char *JRE_KEY = "Software\\JavaSoft\\Java Runtime Environment"; if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) { fprintf(stderr, "Error opening registry key '%s'\n", JRE_KEY); // Ошибка при закрытии ключа реестра exit(1); } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { // Не удалось прочитать значение реестра fprintf(stderr, "Failed reading value of registry key:\n\t%s\\CurrentVersion\n", JRE_KEY); RegCloseKey(key); exit(1); } /* Поиск каталога, в котором установлена текущая версия. */ if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { // Ошибка при открытии ключа реестра fprintf(stderr, "Error opening registry key '%s\\%s'\n", JRE_KEY, version); RegCloseKey(key); exit(1); } if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) { // Не удалось прочитать значение реестра fprintf(stderr, "Failed reading value of registry key:\n\t%s\\%s\\JavaHome\n", JRE_KEY, version); RegCloseKey(key); RegCloseKey(subkey); exit(1); } RegCloseKey(key); RegCloseKey(subkey); }
/* * idnGetPrgEncoding - refer to Program's Local Encoding * * use program name as registry key */ BOOL idnGetPrgEncoding(char *enc, size_t len) { if (GetStringFromRegistry(IDNVAL_ENCODE, enc, len, IDN_PERPROG|IDN_CURUSER) != TRUE || enc[0] == '\0') { sprintf(enc, "CP%d", GetACP()); } idnLogPrintf(idn_log_level_trace, "idnGetPrgEncoding: %-.30s\n", enc); return (TRUE); }
static void GetPublicJREHome(char *buf, jint bufsize) { HKEY key, subkey; char version[MAX_PATH]; /* Find the current version of the JRE */ char *JRE_KEY = "Software\\JavaSoft\\Java Runtime Environment"; if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) { fprintf(stderr, "Error opening registry key '%s'\n", JRE_KEY); exit(1); } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { fprintf(stderr, "Failed reading value of registry key:\n\t%s\\CurrentVersion\n", JRE_KEY); RegCloseKey(key); exit(1); } /* Find directory where the current version is installed. */ if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { fprintf(stderr, "Error opening registry key '%s\\%s'\n", JRE_KEY, version); RegCloseKey(key); exit(1); } if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) { fprintf(stderr, "Failed reading value of registry key:\n\t%s\\%s\\JavaHome\n", JRE_KEY, version); RegCloseKey(key); RegCloseKey(subkey); exit(1); } RegCloseKey(key); RegCloseKey(subkey); }
void GetNetConfig::GetInterfaceName(char adapterName[]) { TCHAR szKey[MAX_PATH]; sprintf_s( (char*)szKey, sizeof(szKey), _T("SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\%s\\Connection"), adapterName); if (!GetStringFromRegistry( TRUE, HKEY_LOCAL_MACHINE, szKey, _T("Name"), (LPBYTE)m_szIntefaceName, MAX_PATH)) { return; } }
static jboolean GetPublicJREHome(char *buf, jint bufsize) { HKEY key, subkey; char version[MAXPATHLEN]; /* * Note: There is a very similar implementation of the following * registry reading code in the Windows java control panel (javacp.cpl). * If there are bugs here, a similar bug probably exists there. Hence, * changes here require inspection there. */ /* Find the current version of the JRE */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) { fprintf(stderr, "Error opening registry key '" JRE_KEY "'\n"); return JNI_FALSE; } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { fprintf(stderr, "Failed reading value of registry key:\n\t" JRE_KEY "\\CurrentVersion\n"); RegCloseKey(key); return JNI_FALSE; } if (strcmp(version, DOTRELEASE) != 0) { fprintf(stderr, "Registry key '" JRE_KEY "\\CurrentVersion'\nhas " "value '%s', but '" DOTRELEASE "' is required.\n", version); RegCloseKey(key); return JNI_FALSE; } /* Find directory where the current version is installed. */ if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { fprintf(stderr, "Error opening registry key '" JRE_KEY "\\%s'\n", version); RegCloseKey(key); return JNI_FALSE; } if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) { fprintf(stderr, "Failed reading value of registry key:\n\t" JRE_KEY "\\%s\\JavaHome\n", version); RegCloseKey(key); RegCloseKey(subkey); return JNI_FALSE; } if (_launcher_debug) { char micro[MAXPATHLEN]; if (!GetStringFromRegistry(subkey, "MicroVersion", micro, sizeof(micro))) { printf("Warning: Can't read MicroVersion\n"); micro[0] = '\0'; } printf("Version major.minor.micro = %s.%s\n", version, micro); } RegCloseKey(key); RegCloseKey(subkey); return JNI_TRUE; }
static jboolean GetPublicJREHome(char *buf, jint bufsize) { HKEY key, subkey; char version[MAXPATHLEN]; /* * Note: There is a very similar implementation of the following * registry reading code in the Windows java control panel (javacp.cpl). * If there are bugs here, a similar bug probably exists there. Hence, * changes here require inspection there. */ /* Find the current version of the JRE */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, JRE_KEY, 0, KEY_READ, &key) != 0) { JLI_ReportErrorMessage(REG_ERROR1, JRE_KEY); return JNI_FALSE; } if (!GetStringFromRegistry(key, "CurrentVersion", version, sizeof(version))) { JLI_ReportErrorMessage(REG_ERROR2, JRE_KEY); RegCloseKey(key); return JNI_FALSE; } if (JLI_StrCmp(version, GetDotVersion()) != 0) { JLI_ReportErrorMessage(REG_ERROR3, JRE_KEY, version, GetDotVersion() ); RegCloseKey(key); return JNI_FALSE; } /* Find directory where the current version is installed. */ if (RegOpenKeyEx(key, version, 0, KEY_READ, &subkey) != 0) { JLI_ReportErrorMessage(REG_ERROR1, JRE_KEY, version); RegCloseKey(key); return JNI_FALSE; } if (!GetStringFromRegistry(subkey, "JavaHome", buf, bufsize)) { JLI_ReportErrorMessage(REG_ERROR4, JRE_KEY, version); RegCloseKey(key); RegCloseKey(subkey); return JNI_FALSE; } if (JLI_IsTraceLauncher()) { char micro[MAXPATHLEN]; if (!GetStringFromRegistry(subkey, "MicroVersion", micro, sizeof(micro))) { printf("Warning: Can't read MicroVersion\n"); micro[0] = '\0'; } printf("Version major.minor.micro = %s.%s\n", version, micro); } RegCloseKey(key); RegCloseKey(subkey); return JNI_TRUE; }