Главная / FAQ по Builder'у / 80 Как можно получить/изменить...

80 Как можно получить/изменить в Windows информацию о системе и её элементах (например: имя компьютера, определение размера диска, частоту обновления экрана, расширение экрана, изменить имя компьютера, узнать имя метки диска, свойства файла) ?



Получение имени компьютера

--------------------------------------------
// для получения имени компьютера напишите следующий код

unsigned long Size = MAX_COMPUTERNAME_LENGTH + 1;
char *Buffer = new char[Size];
GetComputerName(Buffer, &Size);

// после выполнения данного кода имя компьютера будет содержаться в Buffer.
//После того, как Buffer
// перестанет быть вам нужным, не забудьте вызвать delete [] Buffer.
--------------------------------------------

Определение размера диска
(VCL вариант)

// для определения размера диска используйте функцию DiskSize,
// объявленную в Sysutils.hpp. В параметрах функции диску А соответствует 1,
// диску В - 2, и т. д., 0 - текущий диск.
// Следующий код определит размер диска С в байтах.

__int64 Size = DiskSize(3);

--------------------------------------------

Как узнать частоту обновления экрана?

// для получения частоты обновления экрана напишите следующий код:
HDC hDCScreen = GetDC(NULL);
int Refresh = GetDeviceCaps(hDCScreen, VREFRESH);
ReleaseDC(NULL, hDCScreen);

// в Refresh содержится частотf обновления экрана по горизонтали,

--------------------------------------------

Как узнать разрешение экрана?
(WinAPI вариант)

// для получения разрешения экрана напишите следующий код:
HDC hDCScreen = GetDC(NULL);
int Horres = GetDeviceCaps(hDCScreen, HORZRES);
int Vertres = GetDeviceCaps(hDCScreen, VERTRES);
ReleaseDC(NULL, hDCScreen);
// в Horres содержится разрешение экрана по горизонтали,
// в Vertres содержится разрешение экрана по вертикали.

--------------------------------------------

Изменение имени компьютера

// для изменения имени компьютера воспользуйтесь функцией SetComputerName
SetComputerName("HОВОЕ_ИМЯ_КОМПЬЮТЕРА");

// не забудьте перезагрузить машину

--------------------------------------------

Получение метки диска

// для получения метки диска напишите следующий код

char DiskLabel[MAX_PATH];
char *DiskName = "c:\\"; // имя диска
GetVolumeInformation(DiskName, DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0);

// в DiskLabel находится метка диска
--------------------------------------------

Отображение свойств файла

// на форме разместите TOpenDialog (OpenDialog1) и TButton (Button1)
// напишите следующий обработчик события OnClick кнопки:

void __fastcall TForm1::Button1Click(TObject *Sender)
  {
if(OpenDialog1->Execute())
    {
      SHELLEXECUTEINFO SEI;
      ZeroMemory(&SEI, sizeof(SHELLEXECUTEINFO));

      SEI.cbSize= sizeof(SHELLEXECUTEINFO);
      SEI.lpVerb = "properties";
      SEI.lpFile= OpenDialog1->FileName.c_str();
      SEI.nShow = SW_SHOW;
      SEI.fMask= SEE_MASK_INVOKEIDLIST;
      ShellExecuteEx(&SEI);
    }
  }
--------------------------------------------
Konstantin Solovev 2:5030/1224.24

Предыдущий вопрос   |  Список вопросов   |   Следующий вопрос

источник      На главную      by jenyok
Copyright © 2003 JTSOFT
Сайт управляется системой uCoz