Ejemplo n.º 1
0
// ConEmuC -OsVerInfo
int OsVerInfo()
{
	OSVERSIONINFOEX osv = {sizeof(osv)};
	GetOsVersionInformational((OSVERSIONINFO*)&osv);

	UINT DBCS = IsDbcs();
	UINT HWFS = IsHwFullScreenAvailable();
	UINT W5fam = IsWin5family();
	UINT WXPSP1 = IsWinXPSP1();
	UINT W6 = IsWin6();
	UINT W7 = IsWin7();
	UINT W10 = IsWin10();
	UINT Wx64 = IsWindows64();
	UINT WINE = IsWine();
	UINT WPE = IsWinPE();
	UINT TELNET = isTerminalMode();

	wchar_t szInfo[200];
	_wsprintf(szInfo, SKIPCOUNT(szInfo)
		L"OS version information\n"
		L"%u.%u build %u SP%u.%u suite=x%04X type=%u\n"
		L"W5fam=%u WXPSP1=%u W6=%u W7=%u W10=%u Wx64=%u\n"
		L"HWFS=%u DBCS=%u WINE=%u WPE=%u TELNET=%u\n",
		osv.dwMajorVersion, osv.dwMinorVersion, osv.dwBuildNumber, osv.wServicePackMajor, osv.wServicePackMinor, osv.wSuiteMask, osv.wProductType,
		W5fam, WXPSP1, W6, W7, W10, Wx64, HWFS,
		DBCS, WINE, WPE, TELNET);
	_wprintf(szInfo);

	return MAKEWORD(osv.dwMinorVersion, osv.dwMajorVersion);
}
Ejemplo n.º 2
0
bool DoStateCheck(ConEmuStateCheck eStateCheck)
{
	LogFunction(L"DoStateCheck");

	bool bOn = false;

	switch (eStateCheck)
	{
	case ec_IsConEmu:
	case ec_IsAnsi:
		if (ghConWnd)
		{
			CESERVER_CONSOLE_MAPPING_HDR* pInfo = (CESERVER_CONSOLE_MAPPING_HDR*)malloc(sizeof(*pInfo));
			if (pInfo && LoadSrvMapping(ghConWnd, *pInfo))
			{
				_ASSERTE(pInfo->ComSpec.ConEmuExeDir[0] && pInfo->ComSpec.ConEmuBaseDir[0]);

				HWND hWnd = pInfo->hConEmuWndDc;
				if (hWnd && IsWindow(hWnd))
				{
					switch (eStateCheck)
					{
					case ec_IsConEmu:
						bOn = true;
						break;
					case ec_IsAnsi:
						bOn = ((pInfo->Flags & CECF_ProcessAnsi) != 0);
						break;
					default:
						;
					}
				}
			}
			SafeFree(pInfo);
		}
		break;
	case ec_IsAdmin:
		bOn = IsUserAdmin();
		break;
	case ec_IsRedirect:
		bOn = IsOutputRedirected();
		break;
	case ec_IsTerm:
		bOn = isTerminalMode();
		break;
	default:
		_ASSERTE(FALSE && "Unsupported StateCheck code");
	}

	return bOn;
}