Информация о системе - C++ Для вывода информации о системе будут использованы следующие функции (рис. 1): - getwindowsdirectory — возвращает путь к каталогу windows; - getsystemdirectory — возвращает путь к системному каталогу windows; - getcomputername — возвращает имя компьютера. Текст программы: #include #pragma hdrstop #include "text.h" //------------------ #pragma package(smart_init) #pragma resource "*.dfm" tform1 *form1; //------------------ __fastcall tform1::tform1(tcomponent* owner) : tform(owner) { } //------------------ void __fastcall tform1::formcreate(tobject *sender) { char windowsdirectory[max_path]; getwindowsdirectory(windowsdirectory, max_path); labelededit1–>text=windowsdirectory; char systemdirectory[max_path]; getsystemdirectory(systemdirectory, max_path); labelededit2–>text=systemdirectory; unsigned long size = max_computername_length + 1; char *buffer = new char[size]; getcomputername(buffer, &size); labelededit3–>text=buffer; delete [] buffer; } //------------------ void __fastcall tform1::button1click(tobject *sender) { close(); } Информация о дисках Чтобы узнать системную информацию, не обязательно использовать функции api. c++builder имеет собственные функции для ее определения. Будут использованы следующие функции. - disksize — возвращает размер диска в байтах. В качестве входного параметра используется целое число, которое означает: 0 — текущий диск, 1 — a, 2 — b и т. д. - diskfree — возвращает размер в байтах свободного пространства на диске. Текст программы: #include #pragma hdrstop #include "text.h" //----------------------- #pragma package(smart_init) #pragma link "cgauges" #pragma resource "*.dfm" tform1 *form1; __int64 size; __int64 freespace; //----------------------- __fastcall tform1::tform1(tcomponent* owner) : tform(owner) { } //----------------------- void __fastcall tform1::combobox1change(tobject *sender) { if (combobox1–>itemindex>-1) { size = disksize(combobox1–>itemindex+1); freespace = diskfree(combobox1–>itemindex+1); if (size>0) { labelededit3–>text=inttostr(size/1024/1024); labelededit1–>text=inttostr(freespace/1024/1024); labelededit2–>text=inttostr((size-freespace)/1024/1024); cgauge1–>progress= freespace*100/size; } else { showmessage("Диска нет!nnВставьте другой диск."); } } } Информация о шрифтах, установленных в системе Иногда получить информацию можно из свойств объектов. Для вывода информации о количестве шрифтов в системе достаточно получить значение свойства screen–>fonts–>count. Наименования шрифтов хранятся в строках screen–>fonts–>strings[i], где i — целое число, означающее индекс очередного наименования. #include #pragma hdrstop #include "text.h" //----------------------- #pragma package(smart_init) #pragma resource "*.dfm" tform1 *form1; //----------------------- __fastcall tform1::tform1(tcomponent* owner) : tform(owner) { } //----------------------- void __fastcall tform1::formcreate(tobject *sender) { for (int i=0; ifonts–>count; i++) combobox1–>items–>add(screen–>fonts–>strings[i]); combobox1–>itemindex=0; label2–>font–>name=combobox1–>text; } //----------------------- void __fastcall tform1::combobox1change(tobject *sender) { label2–>font–>name=combobox1–>text; }
|