C++ Builder Snippets  

Einige System-Informationen bestimmen:
 
//-----------------------------------------------------------------
//  Füllt eine Memo-Komponente mit Informationen über Speicher,
//  Betriebssystem, Auflösung, Farbtiefe, Grösse der System-Schrift,
//  Benutzer- und Computernamen
//
//  (Formular-Name: frmInfo, Name der Memo-Komponente: memoSysInfo)
//-----------------------------------------------------------------
void TfrmInfo::FillSystemMemo(void)
{
  MEMORYSTATUS MemStat;
  OSVERSIONINFO vi;
  SYSTEM_INFO SysInf;
  LPTSTR slValue;
  TCHAR  siBuffer[256];
  DWORD  siBuffSize = 256;

  memoSysInfo -> Clear();

  // Speicher:
  MemStat.dwLength = sizeof(MEMORYSTATUS);
  GlobalMemoryStatus(&MemStat);
  memoSysInfo -> Lines -> Add("Speicher:");
  memoSysInfo -> Lines -> Add("-------------------------------");
  memoSysInfo -> Lines -> Add("Physikalischer Speicher gesamt: " +
    AnsiString((double)MemStat.dwTotalPhys / 1024.0) + "KB");
  memoSysInfo -> Lines -> Add("Physikalischer Speicher frei: " +
    AnsiString((double)MemStat.dwAvailPhys / 1024.0) + "KB");
  memoSysInfo -> Lines -> Add("Virtueller Speicher gesamt: " +
    AnsiString((double)MemStat.dwTotalVirtual / 1024.0) + "KB");
  memoSysInfo -> Lines -> Add("Virtueller Speicher frei: " +
    AnsiString((double)MemStat.dwAvailVirtual / 1024.0) + "KB");

  // Betriebssystem:
  memoSysInfo -> Lines -> Add("\r\nBetriebssystem:");
  memoSysInfo -> Lines -> Add("-------------------------------");
  vi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  GetVersionEx(&vi);
  switch (vi.dwPlatformId)
  {
    case VER_PLATFORM_WIN32s:
      memoSysInfo -> Lines -> Add("Platform : Win32s");
      break;

    case VER_PLATFORM_WIN32_WINDOWS:
      memoSysInfo -> Lines -> Add("Platform: Windows 95");
      break;

    case VER_PLATFORM_WIN32_NT:
      memoSysInfo -> Lines -> Add("Platform: Windows NT");
      break;
  }

  memoSysInfo -> Lines -> Add("Version: " +
    AnsiString((int)vi.dwMajorVersion) + "." +
    AnsiString((int)vi.dwMinorVersion));
  memoSysInfo -> Lines -> Add("Revision: " +
    AnsiString((int)(vi.dwBuildNumber & 0xFFFF)));

  // Graphik:
  memoSysInfo -> Lines -> Add("\r\nBildschirm:");
  memoSysInfo -> Lines -> Add("-------------------------------");
  GetSystemInfo((LPSYSTEM_INFO)&SysInf);
  memoSysInfo -> Lines -> Add("Auflösung: " +
    AnsiString((int)Screen->Width) + "x" + AnsiString((int)Screen->Height));
  memoSysInfo -> Lines -> Add("Pixel pro Zoll (DPI): " +
    AnsiString((int)Screen->PixelsPerInch));

  int BitsPerPixel  = GetDeviceCaps(Canvas->Handle,BITSPIXEL);
  int Planes        = GetDeviceCaps(Canvas->Handle,PLANES);
  BitsPerPixel *= Planes;
  switch (BitsPerPixel)
  {
    case 32:
      memoSysInfo -> Lines ->
        Add("Farbpalette: 32-Bit True Color \r\nAnzahl der Farben: 4.294.967.296");
      break;
    case 24:
      memoSysInfo -> Lines ->
        Add("Farbpalette: 24-Bit True Color \r\nAnzahl der Farben: 16.777.216");
      break;
    case 16:
      memoSysInfo -> Lines ->
        Add("Farbpalette: 16-Bit High Color \r\nAnzahl der Farben: 65.536");
      break;
    case 8:
      memoSysInfo -> Lines -> Add("Farbpalette: 256 Farben");
      break;
    case 4:
      memoSysInfo -> Lines -> Add("Farbpalette: 16 Farben");
      break;
    case 1:
      memoSysInfo -> Lines -> Add("Farbpalette: Monochrom - Modus");
      break;
  }
  if(Screen->PixelsPerInch == 96)
    memoSysInfo -> Lines -> Add("Schriftgrad: Kleine Schriften");
  else if(Screen->PixelsPerInch == 120)
    memoSysInfo -> Lines -> Add("Schriftgrad: Große Schriften");
  else
  {
    float Ratio = ((float)Screen->PixelsPerInch) / 96.0;
    Ratio *= 100.0;
    memoSysInfo -> Lines -> Add("Schriftgrad: Schriften gesetzt auf " +
      IntToStr((int)Ratio) + " %");
  }

  // Benutzername:
  memoSysInfo -> Lines -> Add("\r\nBenutzer:");
  memoSysInfo -> Lines -> Add("-------------------------------");
  slValue = siBuffer;
  GetComputerName(slValue, &siBuffSize);

  memoSysInfo -> Lines -> Add("Computername: " + AnsiString(slValue));
  slValue = siBuffer;
  GetUserName(slValue, &siBuffSize);
  memoSysInfo -> Lines -> Add("Benutzername: " +AnsiString(slValue));
}



© '99-2000 by S. Kreutzmann