bool WindowsLPIAction::IsNeed()
{
 	if (status == CannotBeApplied)
		return false;
	
	bool bNeed = false;

	if (_getDownloadID() != DI_UNKNOWN)
	{		
		if (_isLangPackInstalled() == false || _isDefaultLanguage() == false)
		{
			bNeed = true;
		}
		else
		{
			status = AlreadyApplied;
		}
	}
	else
	{
		status = CannotBeApplied;
		_getStringFromResourceIDName(IDS_WINDOWSLPIACTION_UNSUPPORTEDVERSION, szCannotBeApplied);
		g_log.Log(L"WindowsLPIAction::IsNeed. Unsupported Windows version");
	}

	g_log.Log(L"WindowsLPIAction::IsNeed returns %u", (wchar_t *) bNeed);
	return bNeed;	
}
void AdobeReaderAction::CheckPrerequirements(Action * action)
{
	_readVersionInstalled();

	if (m_version.size() > 0)
	{
		if (_isLangPackInstalled() == true)
		{
			SetStatus(AlreadyApplied);
			return;
		}

		int major = _getMajorVersion();
		if (major != 9 && major != 10)
		{
			_getStringFromResourceIDName(IDS_NOTSUPPORTEDVERSION, szCannotBeApplied);
			g_log.Log(L"AdobeReaderAction::CheckPrerequirements. Version not supported");
			SetStatus(CannotBeApplied);
			return;
		}
	}
	else
	{
		_setStatusNotInstalled();
		return;
	}
}
ActionStatus OpenOfficeAction::GetStatus()
{
	if (status == InProgress)
	{
		if (m_runner->IsRunning())
			return InProgress;

		if (_isLangPackInstalled())
		{
			if (_isDefaultLanguage() == false)
			{
				_setDefaultLanguage();
			}

			SetStatus(Successful);
		}
		else
		{
			SetStatus(FinishedWithError);
		}
		
		g_log.Log(L"OpenOfficeAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError");
	}
	return status;
}
void OpenOfficeAction::CheckPrerequirements(Action * action)
{
	_readVersionInstalled();

	if (m_version.size() > 0)
	{
		if (_isLangPackInstalled() == true)
		{
			SetStatus(AlreadyApplied);
			return;
		}

		if (_doesDownloadExist() == false)
		{			
			_getStringFromResourceIDName(IDS_OPENOFFICEACTION_NOTSUPPORTEDVERSION, szCannotBeApplied);
			g_log.Log(L"OpenOfficeAction::CheckPrerequirements. Version not supported");
			SetStatus(CannotBeApplied);
			return;
		}
	}
	else
	{
		_setStatusNotInstalled();
		return;
	}
}
示例#5
0
LPCWSTR Windows8LPIAction::GetLicenseID()
{
    // If the package is installed, no need to accept the license
    if (_isLangPackInstalled() == true)
        return NULL;

    return MAKEINTRESOURCE(IDR_LICENSE_WINDOWS8);
}
示例#6
0
bool Windows8LPIAction::_isAlreadyApplied()
{
    bool panel, langpack, deflang;

    panel = _isLanguagePanelFirst();
    langpack = _isLangPackInstalled();
    deflang = _isDefaultLanguage();

    return panel && langpack && deflang;
}
bool IELPIAction::_wasInstalled()
{
	// Could not find a way to tell if it went well
	if (_getIEVersion() == InternetExplorerVersion::IE8 && m_OSVersion->GetVersion() == WindowsXP)
	{
		return true;
	}

	return _isLangPackInstalled();
}
void WindowsLPIAction::Execute()
{
	wchar_t szParams[MAX_PATH];
	wchar_t lpkapp[MAX_PATH];

	if (_isLangPackInstalled() == true)
	{
		_setDefaultLanguage();
		status = _isLangPackInstalled() ? Successful : FinishedWithError;
		g_log.Log(L"WindowsLPIAction::Execute. Setting default language only was '%s'", status == Successful ? L"Successful" : L"FinishedWithError");
		return;
	}

	OperatingVersion version = m_OSVersion->GetVersion();

	if (version == WindowsXP)
	{
		GetSystemDirectory(lpkapp, MAX_PATH);
		wcscat_s(lpkapp, L"\\msiexec.exe ");

		wcscpy_s(szParams, L" /i ");
		wcscat_s(szParams, m_szFilename); // full path to 'lip_ca-es.msi'
		wcscat_s(szParams, L" /qn");
	}
	else // Windows Vista and 7
	{	
		// Documentation: http://technet.microsoft.com/en-us/library/cc766010%28WS.10%29.aspx
		wcscpy_s(szParams, L" /i ca-ES /r /s /p ");
		wcscat_s(szParams, m_szFilename);
	
		GetSystemDirectory(lpkapp, MAX_PATH);
		wcscat_s(lpkapp, L"\\lpksetup.exe");
	}

	status = InProgress;
	g_log.Log(L"WindowsLPIAction::Execute '%s' with params '%s'", lpkapp, szParams);
	m_runner->Execute(lpkapp, szParams, m_OSVersion->IsWindows64Bits());
}
ActionStatus WindowsLPIAction::GetStatus()
{
	if (status == InProgress)
	{
		if (m_runner->IsRunning())
			return InProgress;

		if (_isLangPackInstalled()) {
			status = Successful;
			_setDefaultLanguage();
		}
		else {
			status = FinishedWithError;			
		}
		
		g_log.Log(L"WindowsLPIAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError");
	}
	return status;
}
示例#10
0
void MSOfficeLPIAction::CheckPrerequirements(Action * action) 
{
	if (_getVersionInstalled() == NoMSOffice)
	{
		_setStatusNotInstalled();
		return;
	}

	if (_getVersionInstalled() == MSOffice2010_64 || _getVersionInstalled() == MSOffice2013_64)
	{
		SetStatus(CannotBeApplied);
		_getStringFromResourceIDName(IDS_NOTSUPPORTEDVERSION, szCannotBeApplied);
		g_log.Log(L"MSOfficeLPIAction::CheckPrerequirements. Version not supported");
		return;
	}

	if (_isLangPackInstalled())
	{
		SetStatus(AlreadyApplied);
		return;
	}
}
ActionStatus AdobeReaderAction::GetStatus()
{
	if (status == InProgress)
	{
		if (m_runner->IsRunning())
			return InProgress;		

		switch (m_executionStep)
		{
			case ExecutionStepNone:
				break;
			case ExecutionStep1:
			{
				m_hideApplicationWindow.Stop();
				_installVersion();
				return InProgress;
			}
			case ExecutionStep2:
				break;
			default:
				assert(false);
				break;
		}

		_readInstalledLang(m_version);

		if (_isLangPackInstalled())
		{
			SetStatus(Successful);
		}
		else
		{
			SetStatus(FinishedWithError);
		}
		g_log.Log(L"AdobeReaderAction::GetStatus is '%s'", status == Successful ? L"Successful" : L"FinishedWithError");
	}
	return status;
}
示例#12
0
void Windows8LPIAction::Execute()
{
    wchar_t szParams[MAX_PATH];
    wchar_t lpkapp[MAX_PATH];

    if (_isLangPackInstalled() == false)
    {
        // Documentation: http://technet.microsoft.com/en-us/library/cc766010%28WS.10%29.aspx
        wcscpy_s(szParams, L" /i ");
        wcscat_s(szParams, GetUseDialectalVariant() ? VALENCIAN_LANGPACKCODE : CATALAN_LANGPACKCODE);
        wcscat_s(szParams, L" /r /s /p ");

        wcscat_s(szParams, m_filename.c_str());

        GetSystemDirectory(lpkapp, MAX_PATH);
        wcscat_s(lpkapp, L"\\lpksetup.exe");

        g_log.Log(L"Windows8LPIAction::Execute '%s' with params '%s'", lpkapp, szParams);
        m_runner->Execute(lpkapp, szParams, m_OSVersion->IsWindows64Bits());
    }

    SetStatus(InProgress);
}
bool WindowsLPIAction::IsDownloadNeed()
{
	return _isLangPackInstalled() == false;
}
void IELPIAction::CheckPrerequirements(Action * action)
{
	Prerequirements pre;
	ActionStatus status;

	if (GetStatus() == CannotBeApplied)
		status = Selected;
	else
		status = GetStatus();

	szCannotBeApplied[0] = NULL;
	pre = _checkPrerequirements();

	if (pre != PrerequirementsOk)	
	{
		switch (pre)
		{
			case UnknownIEVersion:
				_getStringFromResourceIDName(IDS_IELPIACTION_UNKNOWNIE, szCannotBeApplied);
				break;
			default:
				break;
		}
	}
	else if (action != NULL)
	{
		switch (_checkPrerequirementsDependand(action))
		{
			case AppliedInWinLPI:
				_getStringFromResourceIDName(IDS_IELPIACTION_APPLIEDINWINLPI, szCannotBeApplied);
				break;
			case NeedsWinLPI:
				_getStringFromResourceIDName(IDS_IELPIACTION_IENEEDWINLPI, szCannotBeApplied);
				break;
			case NoLangPackAvailable:
				_getStringFromResourceIDName(IDS_IELPIACTION_NOPACKAGE, szCannotBeApplied);
				break;
			default:
				break;
		}
	}

	g_log.Log(L"IELPIAction::CheckPrerequirements: %s", wcslen(szCannotBeApplied) > 0 ? szCannotBeApplied: L"Ok");

	if (wcslen(szCannotBeApplied) > 0)
	{
		status = CannotBeApplied;
	}
	else
	{
		if (_getDownloadID() != NULL)
		{
			if (_isLangPackInstalled())
			{
				status = AlreadyApplied;
			}
		}
		else
		{
			status = CannotBeApplied;
		}
	}
	SetStatus(status);
}