Пример #1
0
PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
{
	Measure* measure = (Measure*)data;

	std::lock_guard<std::recursive_mutex> lock(measure->mutex);

	measure->parameter = RmReadString(rm, L"Parameter", L"");
	measure->finishAction = RmReadString(rm, L"FinishAction", L"", FALSE);
	measure->outputFile = RmReadPath(rm, L"OutputFile", L"");
	measure->folder = RmReadPath(rm, L"StartInFolder", L" ");	// Space is intentional!
	measure->timeout = RmReadInt(rm, L"Timeout", -1);

	const WCHAR* state = RmReadString(rm, L"State", L"HIDE");
	if (_wcsicmp(state, L"SHOW") == 0)
	{
		measure->state = SW_SHOW;
	}
	else if (_wcsicmp(state, L"MAXIMIZE") == 0)
	{
		measure->state = SW_MAXIMIZE;
	}
	else if (_wcsicmp(state, L"MINIMIZE") == 0)
	{
		measure->state = SW_MINIMIZE;
	}
	else
	{
		measure->state = SW_HIDE;
	}

	// Grab "%COMSPEC% environment variable
	measure->program = RmReadString(rm, L"Program", RmReplaceVariables(rm, L"\"%COMSPEC%\" /U /C"));
	if (measure->program.empty())
	{
		// Assume "cmd.exe" exists!
		measure->program = L"cmd.exe /U /C";
	}

	const WCHAR* type = RmReadString(rm, L"OutputType", L"UTF16");
	if (_wcsicmp(type, L"ANSI") == 0)
	{
		measure->outputType = OUTPUTTYPE_ANSI;
	}
	else if (_wcsicmp(type, L"UTF8") == 0)
	{
		measure->outputType = OUTPUTTYPE_UTF8;
	}
	else
	{
		measure->outputType = OUTPUTTYPE_UTF16;
	}
}
Пример #2
0
PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
{
	MeasureData* measure = (MeasureData*)data;

	EnterCriticalSection(&g_CriticalSection);

	/* Read our own settings from the ini-file */

	std::wstring url = RmReadString(rm, L"Url", L"", FALSE);

	std::wstring::size_type start = 0;
	while ((start = url.find(L"[&", start)) != std::wstring::npos)
	{
		std::wstring::size_type si = start + 1;
		std::wstring::size_type end = url.find(L']', si);
		if (end == std::wstring::npos) break;

		std::wstring var = L"[";
		var.append(url, si + 1, end - si);

		const WCHAR* result = RmReplaceVariables(rm, var.c_str());
		const size_t resultLength = wcslen(result);
		url.replace(start, end - start + 1, result, resultLength);
		start += resultLength;
	}

	measure->url = url;

	measure->regExp = RmReadString(rm, L"RegExp", L"");
	measure->finishAction = RmReadString(rm, L"FinishAction", L"", FALSE);
	measure->onRegExpErrAction = RmReadString(rm, L"OnRegExpErrorAction", L"", FALSE);
	measure->onConnectErrAction = RmReadString(rm, L"OnConnectErrorAction", L"", FALSE);
	measure->onDownloadErrAction = RmReadString(rm, L"OnDownloadErrorAction", L"", FALSE);
	measure->errorString = RmReadString(rm, L"ErrorString", L"");

	int index = RmReadInt(rm, L"StringIndex", 0);
	measure->stringIndex = index < 0 ? 0 : index;

	index = RmReadInt(rm, L"StringIndex2", 0);
	measure->stringIndex2 = index < 0 ? 0 : index;

	measure->decodeCharacterReference = RmReadInt(rm, L"DecodeCharacterReference", 0);
	measure->updateRate = RmReadInt(rm, L"UpdateRate", 600);
	measure->forceReload = 0!=RmReadInt(rm, L"ForceReload", 0);
	measure->codepage = RmReadInt(rm, L"CodePage", 0);
	if (measure->codepage == 0)
	{
		measure->codepage = CP_UTF8;
	}

	measure->download = 0!=RmReadInt(rm, L"Download", 0);
	if (measure->download)
	{
		measure->downloadFolder = RmPathToAbsolute(rm, L"DownloadFile\\");
		measure->downloadFile = RmReadString(rm, L"DownloadFile", L"");
	}
	else
	{
		measure->downloadFile.clear();
	}

	measure->debug = RmReadInt(rm, L"Debug", 0);
	if (measure->debug == 2)
	{
		measure->debugFileLocation = RmReadPath(rm, L"Debug2File", L"WebParserDump.txt");
		RmLog(rm, LOG_DEBUG, measure->debugFileLocation.c_str());
	}

	LeaveCriticalSection(&g_CriticalSection);
}