String GetComputerName()
{
	char temp[500];
	*temp = 0;
#if defined(PLATFORM_WIN32)
	dword w = 2048;
	::GetComputerNameA(temp, &w);
#else
	gethostname(temp, sizeof(temp));
#endif
	return FromSystemCharset(temp);
}

String GetUserName()
{
	char temp[500];
	*temp = 0;
#if defined(PLATFORM_WIN32)
	dword w = 2048;
	::GetUserNameA(temp, &w);
#else
	//getlogin_r(temp, sizeof(temp));
	const char *uenv = getenv("USER");
	strcpy(temp, uenv ? uenv : "boot");
#endif
	return FromSystemCharset(temp);
}

String GetEnvironmentVariable(const char *str)
{
	char temp[500];
	*temp = 0;
	const char *uenv = getenv(str);
	strcpy(temp, uenv ? uenv : "");

	return FromSystemCharset(temp);
}

String GetDesktopManager()
{
#if defined(PLATFORM_WIN32) && !defined(PLATFORM_WINCE)
	return "Windows";
#endif
#ifdef PLATFORM_POSIX
    if ((GetEnvironmentVariable("GNOME_DESKTOP_SESSION_ID") != "") || 
        (GetEnvironmentVariable("DESKTOP_SESSION") == "gnome")) 
		return "Gnome";
	else if ((GetEnvironmentVariable("KDE_FULL_SESSION") != "") || 
			 (GetEnvironmentVariable("KDEDIR") != "") || 
         	 (GetEnvironmentVariable("DESKTOP_SESSION") == "kde"))  
        return "Kde"; 
    else
        return "Unknown";
#endif	
}
 
