__fastcall TAboutBox::TAboutBox(TComponent* AOwner) : TForm(AOwner) { String ver = GetFileVersionString(Application->ExeName); Version->Caption = String("Version : v")+ver; FormStyle = D3AssistantMainForm->FormStyle; }
CefString AppGetProductVersionString() { std::wstring s(APP_NAME); size_t i = s.find(L" "); while (i != std::wstring::npos) { s.erase(i, 1); i = s.find(L" "); } std::wstring version(L""); GetFileVersionString(version); s.append(L"/"); s.append(version); return CefString(s); }
bool DialogInstall::ReadOptions(const WCHAR* file) { WCHAR buffer[MAX_LINE_LENGTH]; const bool newFormat = m_PackageFormat == PackageFormat::New; const WCHAR* section = newFormat ? L"rmskin" : L"Rainstaller"; const HWND window = m_TabInstall.GetWindow(); if (GetPrivateProfileString(section, L"Name", L"", buffer, 64, file) == 0) { return false; } Static_SetText(GetDlgItem(window, IDC_INSTALLTAB_NAME_TEXT), buffer); if (!newFormat) { // Determine if skins need to backed up based on name int s; int scanned = swscanf(buffer, L"Backup-%d.%d.%d-%d.%d.rmskin", &s, &s, &s, &s, &s); m_BackupPackage = scanned == 5; } GetPrivateProfileString(section, L"Author", L"", buffer, 64, file); Static_SetText(GetDlgItem(window, IDC_INSTALLTAB_AUTHOR_TEXT), buffer); GetPrivateProfileString(section, L"Version", L"", buffer, 64, file); Static_SetText(GetDlgItem(window, IDC_INSTALLTAB_VERSION_TEXT), buffer); m_MergeSkins = GetPrivateProfileInt(section, newFormat ? L"MergeSkins" : L"Merge", 0, file) != 0; GetPrivateProfileString(section, newFormat ? L"VariableFiles" : L"KeepVar", L"", buffer, MAX_LINE_LENGTH, file); m_VariablesFiles = Tokenize(buffer, L"|"); if (GetPrivateProfileString(section, newFormat ? L"MinimumRainmeter" : L"MinRainmeterVer", L"", buffer, MAX_LINE_LENGTH, file) > 0) { std::wstring rainmeterDll = g_Data.programPath + L"Rainmeter.dll"; std::wstring rainmeterVersion = GetFileVersionString(rainmeterDll.c_str()); if (CompareVersions(buffer, rainmeterVersion) == 1) { m_ErrorMessage = L"Rainmeter "; m_ErrorMessage += buffer; m_ErrorMessage += L" or higher is required to install this package.\n\n" L"Get the latest version from rainmeter.net and try again."; return false; } } if (GetPrivateProfileString(section, newFormat ? L"LoadType" : L"LaunchType", L"", buffer, MAX_LINE_LENGTH, file) > 0) { bool loadSkin = _wcsicmp(buffer, newFormat ? L"Skin" : L"Load") == 0; GetPrivateProfileString(section, newFormat ? L"Load" : L"LaunchCommand", L"", buffer, MAX_LINE_LENGTH, file); if (loadSkin) { if (newFormat) { m_LoadSkins.push_back(buffer); } else { m_LoadSkins = Tokenize(buffer, L"|"); } } else { m_LoadLayout = buffer; } } if (newFormat) { if (GetPrivateProfileString(section, L"MinimumDotNET", L"", buffer, MAX_LINE_LENGTH, file) > 0 && CompareVersions(buffer, GetDotNetVersionString()) == 1) { m_ErrorMessage = L".NET framework "; m_ErrorMessage += buffer; m_ErrorMessage += L" or higher is required to install this package."; return false; } if (GetPrivateProfileString(section, L"MinimumWindows", L"", buffer, MAX_LINE_LENGTH, file) > 0 && CompareVersions(buffer, GetWindowsVersionString()) == 1) { m_ErrorMessage = L"Your version of Windows is not supported by this package.\n\n" L"Contact the package author for more information."; return false; } } return true; }