Exemplo n.º 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;
	}
}
Exemplo n.º 2
0
static PyObject *Rainmeter_RmReadPath(RainmeterObject *self, PyObject *args)
{
	PyObject *option, *defValue;
	PyArg_ParseTuple(args, "UU", &option, &defValue);
	wchar_t *optionStr = PyUnicode_AsWideCharString(option, NULL);
	wchar_t *defValueStr = PyUnicode_AsWideCharString(defValue, NULL);
	LPCWSTR result = RmReadPath(self->rm, optionStr, defValueStr);
	PyMem_Free(defValueStr);
	PyMem_Free(optionStr);
	if (result == NULL)
	{
		Py_INCREF(Py_None);
		return Py_None;
	}
	return PyUnicode_FromWideChar(result, -1);
}
Exemplo n.º 3
0
PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
{
	MeasureData* measure = (MeasureData*)data;

	measure->pathname = RmReadPath(rm, L"PathName", L"");

	if (PathIsDirectory(measure->pathname.c_str()))
	{
		std::vector<std::wstring> fileFilters;
		LPCWSTR filter = RmReadString(rm, L"FileFilter", L"");
		if (*filter)
		{
			std::wstring ext = filter;

			size_t start = 0;
			size_t pos = ext.find(L';');
			while (pos != std::wstring::npos)
			{
				fileFilters.push_back(ext.substr(start, pos - start));
				start = pos + 1;
				pos = ext.find(L';', pos + 1);
			}
			fileFilters.push_back(ext.substr(start));
		}

		if (measure->pathname[measure->pathname.size() - 1] != L'\\')
		{
			measure->pathname += L"\\";
		}

		// Scan files
		measure->files.clear();
		bool bSubfolders = RmReadInt(rm, L"Subfolders", 1) == 1;
		ScanFolder(measure->files, fileFilters, bSubfolders, measure->pathname);
	}
	else
	{
		measure->separator = RmReadString(rm, L"Separator", L"\n");
	}

	srand((unsigned)time(NULL));
}
Exemplo n.º 4
0
PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
{
	MeasureData* measure = (MeasureData*)data;
	CFolderInfo* folder = measure->folder;

	if (!folder)
	{
		return;
	}

	LPCWSTR str = RmReadString(rm, L"InfoType", L"");
	if (_wcsicmp(str, L"FolderSize") == 0 || _wcsicmp(str, L"FolderSizeStr") == 0)
	{
		measure->type = MEASURE_FOLDERSIZE;
	}
	else if (_wcsicmp(str, L"FolderCount") == 0 || _wcsicmp(str, L"FolderCountStr") == 0)
	{
		measure->type = MEASURE_FOLDERCOUNT;
	}
	else if (_wcsicmp(str, L"FileCount") == 0 || _wcsicmp(str, L"FileCountStr") == 0)
	{
		measure->type = MEASURE_FILECOUNT;
	}

	if (measure->parent)
	{
		str = RmReadPath(rm, L"Folder", L"");
		folder->SetPath(str);

		str = RmReadString(rm, L"RegExpFilter", L"");
		folder->SetRegExpFilter(str);
		
		folder->SetSubFolders(RmReadInt(rm, L"IncludeSubFolders", 0) == 1);
		folder->SetHiddenFiles(RmReadInt(rm, L"IncludeHiddenFiles", 0) == 1);
		folder->SetSystemFiles(RmReadInt(rm, L"IncludeSystemFiles", 0) == 1);
	}
}
Exemplo n.º 5
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);
}