Реферат: Мониторинг ОС

Волжский университет имени В.Н. Татищева

Факультет “Информатика и телекоммуникации”

Кафедра “Информатика и системы управления”

КУРСОВАЯ РАБОТА

по дисциплине: “Системное программное обеспечение”

Тема: “МониторингОС”

Тольятти 200


СОДЕРЖАНИЕ

Введение

1.1       МониторингОС в современном мире

1.2       Программнаячасть

1.3       Задачапрограммы

1.4       Описаниепрограммы

1.5       Программныйкод

Списокиспользуемой литературы


ВВЕДЕНИЕ

В последнее десятилетие развитиекомпьютерных технологий вступило в совершенно новую фазу. Вычислительные машиныпришли во все сферы человеческой деятельности. Практически каждое предприятие,не зависимо от сферы деятельности, трудно представить без компьютерной техники.

Широкое распространение персональныхкомпьютеров и микрокомпьютерных рабочих станций в бизнесе началось в начале80-х годов. В настоящее время это оборудование представляет собой столь же неотъемлемуюпринадлежность любого офиса, как, например, телефон.

Среди всего этого возникланеобходимость мониторинга операционной системы т.к. компьютеры постоянновыходили из строя, либо работали ни на полном быстродействии. В связи с этимстали появляться новые профессии такие как: системный администратор иливерстальщик. С развитием операционных систем требования к мониторингу постоянноменялись, но принцип мониторинга остался тем же – контроль за системой.


1.        МОНИТОРИНГОПЕРАЦИОННОЙ СИСТЕМЫ В СОВРЕМЕННОМ МИРЕ

Сейчас профессия системногоадминистратора очень распространена, в его функции входит следить за системой(Приведение системы в порядок), настройка компьютера на максимальноебыстродействие, и контроль за Hardware устройствами. Раньше это было не так просто сделать т.к. не было нужногопрограммного обеспечения, и «мозгов», а если и были люди то очень мало. Ноблагодаря современным технологиям и современным программам. Мониторинг системыстал максимально простым. Во всех современных операционных системах существуютстандартные программы мониторинга, а так же очень много софта посвященного томуже вопросу, такие как «AIDA, sisSoftware, и др.»


2.        ПРОГРАММНАЯ ЧАСТЬ

2.1     Задача программы

Моя программа разработана для операционной системы Windows и представляет собой средство длямониторинга системы, которое позволяет узнать основные параметры компьютера ипротестировать его на современность. В программе я постарался сделать так,чтобы мониторинг осуществлялся как можно легче. С помощью нее можно узнать«Балл» своего Hardware устройства, который показывает,устарело устройство или нет. Программа была протестирована на несколькихкомпьютерах, что позволило мне установить балл каждому из компьютеров.

2.2     Описаниепрограммы

 

Программаразрабатывалась под ОС Windows95/98/ME/NT/2000/XPв программе Delphi 7.0

Приоткрытии программы появляется главное рабочее окно (Рис. 5.1)

/>

Рис. 5.1 Основное окно программы


Основное окно состоит из формы на которой имеются кнопки: Процессор,память, дисплей, ОС, диски, видеокарта, об авторе и выход.

При нажатии кнопки процессор появляется (Рис. 5.2) окно на которомпоказано: название процессора, реальная частота его загрузки, график загрузки,средняя частота, и балловая оценка

/>

Рис. 5.2 Процессор системы

При нажатии кнопки память появляется окно (Рис 5.3) на котором можнопосмотреть уровень загрузки памяти, и балл ее оценки.

/>

Рис. 5.3 ОЗУ


При нажатии на кнопку дисплей появляется окно (Рис. 5.4) на котором мыможем посмотреть параметры монитора и поддерживаемые им режимы.

/>

Рис. 5.4 Дисплей

При нажатии на кнопку ОС появляется окно (Рис. 5.5) на котором мы можемпосмотреть версию ОС, ее параметры, а так же балл оценки.

/>

Рис. 5.5 ОС

При нажатии на кнопку диски появляется окно (Рис. 5.6) на котором мыможем посмотреть параметры всех имеющихся дисков, и его параметров.

/>

Рис. 5.6 Диски

При нажатии на кнопку видеокарта появляется окно (Рис. 5.7) на котором мыможем посмотреть параметры видеокарты.

/>

Рис. 5.7 Видеокарта

2.3     Программнаячасть

unit Unit1;

interface


uses

  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg,registry;

type

  TForm1 = class(TForm)

    Image1: TImage;

    Image2: TImage;

    Image3: TImage;

    Image4: TImage;

    Image5: TImage;

    Image6: TImage;

    Image7: TImage;

    Image8: TImage;

    Image9: TImage;

    Image10: TImage;

    Image11: TImage;

    Image12: TImage;

    Image13: TImage;

    Image14: TImage;

    Image15: TImage;

    Image16: TImage;

    Image17: TImage;

    Image18: TImage;

    Image19: TImage;

    Image20: TImage;

    Image21: TImage;

    Image22: TImage;

    Image23: TImage;

    Image24: TImage;

    Image25: TImage;

    procedure FormCreate(Sender: TObject);

    procedure FormMouseMove(Sender: TObject; Shift:TShiftState; X,

      Y: Integer);

    procedure FormMouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormMouseDown(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormPaint(Sender: TObject);

    procedure Image2MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image2MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image2MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image3MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image4MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image5MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image6MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image7MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image8MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image9MouseUp(Sender: TObject; Button:TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image3MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image4MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image5MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image6MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image7MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image8MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image9MouseDown(Sender: TObject;Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Image3MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image4MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image5MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image6MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image7MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image8MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image9MouseMove(Sender: TObject;Shift: TShiftState; X,

      Y: Integer);

    procedure Image5Click(Sender: TObject);

    procedure Image9Click(Sender: TObject);

    procedure Image2Click(Sender: TObject);

    procedure Image4Click(Sender: TObject);

    procedure Image3Click(Sender: TObject);

    procedure Image8Click(Sender: TObject);

    procedure Image7Click(Sender: TObject);

    procedure Image6Click(Sender: TObject);

  private

    { Private declarations }

    Dragging,Stop  : Boolean;

    OldLeft,OldTop  : Integer;

    modes:array[0..255] of TDevMode;

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7,Unit8;

{$R *.dfm}

{ TForm1 }

function CreateRgnFromBitmap(rgnBitmap: TBitmap):HRGN;

var

  TransColor: TColor;

  i, j: Integer;

  i_width, i_height: Integer;

  i_left, i_right: Integer;

  rectRgn: HRGN;

begin

 Result := 0;

 i_width := rgnBitmap.Width;

 i_height := rgnBitmap.Height;

 transColor := rgnBitmap.Canvas.Pixels[0, 0];

 for i := 0 to i_height — 1 do

  begin

   i_left := -1;

   for j := 0 to i_width — 1 do

    begin

     if i_left < 0 then

      begin

       if rgnBitmap.Canvas.Pixels[j, i] <>transColor then

        i_left := j;

      end

     else

      if rgnBitmap.Canvas.Pixels[j, i] = transColorthen

       begin

        i_right := j;

        rectRgn := CreateRectRgn(i_left, i, i_right,i + 1);

        if Result = 0 then

         Result := rectRgn

        else

         begin

          CombineRgn(Result, Result, rectRgn,RGN_OR);

          DeleteObject(rectRgn);

         end;

        i_left := -1;

       end;

    end;

   if i_left >= 0 then

    begin

     rectRgn := CreateRectRgn(i_left, i, i_width, i+ 1);

     if Result = 0 then

      Result := rectRgn

     else

      begin

       CombineRgn(Result, Result, rectRgn, RGN_OR);

       DeleteObject(rectRgn);

      end;

    end;

  end;

end;

procedure TForm1.FormCreate(Sender: TObject);

var

 WindowRgn: HRGN;

begin

 BorderStyle := bsNone;

 ClientWidth := Image1.Picture.Bitmap.Width;

 ClientHeight := Image1.Picture.Bitmap.Height;

 windowRgn :=CreateRgnFromBitmap(Image1.Picture.Bitmap);

 SetWindowRgn(Handle, WindowRgn, True);

end;

procedure TForm1.FormPaint(Sender: TObject);

begin

 Canvas.Draw(0, 0, Image1.Picture.Bitmap);

end;

procedure TForm1.FormMouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

 if button=mbLeft then

  begin

   Dragging := True;

   OldLeft := X;

   OldTop := Y;

  end;

end;

procedure TForm1.FormMouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

 if Dragging then

  begin

   Left := Left+X-OldLeft;

   Top := Top+Y-OldTop;

  end;

end;

procedure TForm1.FormMouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

 Dragging := False;

end;

procedure TForm1.Image2MouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

Image2.Cursor:=crHandPoint;

end;

procedure TForm1.Image2MouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image2.Picture:=Image14.Picture;

end;

procedure TForm1.Image2MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image2.Picture:=Image15.Picture;

end;

procedure TForm1.Image3MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image3.Picture:=Image16.Picture;

end;

procedure TForm1.Image4MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image4.Picture:=Image18.Picture;

end;

procedure TForm1.Image5MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image5.Picture:=Image13.Picture;

end;


procedure TForm1.Image6MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image6.Picture:=Image24.Picture;

end;

procedure TForm1.Image7MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image7.Picture:=Image23.Picture;

end;

procedure TForm1.Image8MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image8.Picture:=Image20.Picture;

end;

procedure TForm1.Image9MouseUp(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image9.Picture:=Image11.Picture;

end;

procedure TForm1.Image3MouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image3.Picture:=Image17.Picture;

end;

procedure TForm1.Image4MouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image4.Picture:=Image19.Picture;

end;

procedure TForm1.Image5MouseDown(Sender: TObject; Button:TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image5.Picture:=Image12.Picture;

end;

procedure TForm1.Image6MouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image6.Picture:=Image25.Picture;

end;

procedure TForm1.Image7MouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image7.Picture:=Image22.Picture;

end;

procedure TForm1.Image8MouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image8.Picture:=Image21.Picture;

end;

procedure TForm1.Image9MouseDown(Sender: TObject;Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Image9.Picture:=Image10.Picture;

end;

procedure TForm1.Image3MouseMove(Sender: TObject; Shift:TShiftState; X,

  Y: Integer);

begin

Image3.Cursor:=crHandPoint;

end;

procedure TForm1.Image4MouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

Image4.Cursor:=crHandPoint;

end;

procedure TForm1.Image5MouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

Image5.Cursor:=crHandPoint;

end;

procedure TForm1.Image6MouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

Image6.Cursor:=crHandPoint;

end;

procedure TForm1.Image7MouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

Image7.Cursor:=crHandPoint;

end;

procedure TForm1.Image8MouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

Image8.Cursor:=crHandPoint;

end;

procedure TForm1.Image9MouseMove(Sender: TObject;Shift: TShiftState; X,

  Y: Integer);

begin

Image9.Cursor:=crHandPoint;

end;

procedure TForm1.Image5Click(Sender: TObject);

begin

//Выход

Application.Terminate;

end;

procedure TForm1.Image9Click(Sender: TObject);

var

Reg:TRegistry;

begin

Form1.Visible:=False;

FormCPUSpeed.Visible:=True;

Reg:=TRegistry.Create;

Reg.RootKey:=HKEY_LOCAL_MACHINE;

Reg.OpenKey('\Hardware\DESCRIPTION\System\CentralProcessor\0',False);

FormCPUSpeed.LabelCPUName.Caption:=Reg.ReadString('ProcessorNameString');

Reg.CloseKey;

FormCPUSpeed.BitBtnStart.Click;

end;

procedure TForm1.Image2Click(Sender: TObject);

var

 MemInfo: TMemoryStatus;

begin

 MemInfo.dwLength := Sizeof (MemInfo);

 GlobalMemoryStatus (MemInfo);

 FormPamyt.PolnayaFizPamyt.Caption:=IntToStr(MemInfo.dwTotalPhysdiv 1024);

 FormPamyt.DostupnayaFizPamyat.Caption:=IntToStr(MemInfo.dwAvailPhysdiv 1024);

 FormPamyt.ObshayaPodkachka.Caption:=IntToStr(MemInfo.dwTotalPageFilediv 1024);

 FormPamyt.DostupPodkachka.Caption:=IntToStr(MemInfo.dwAvailPageFilediv 1024);

 FormPamyt.Pamyt1.Progress := MemInfo.dwAvailPhysdiv (MemInfo.dwTotalPhys div 100);

 FormPamyt.Pamyt2.Progress :=MemInfo.dwAvailPageFile div (MemInfo.dwTotalPageFile div 100);

 {еслизначение маленькое меняем цвет на красный}

 if(FormPamyt.Pamyt1.Progress < 5) then FormPamyt.Pamyt1.ForeColor := clRed

 else FormPamyt.Pamyt1.ForeColor := clActiveCaption;

 if (FormPamyt.Pamyt2.Progress < 20) thenFormPamyt.Pamyt2.ForeColor := clRed

 else FormPamyt.Pamyt2.ForeColor := clActiveCaption;

 Form1.Visible:=False;

 FormPamyt.Visible:=True;

if(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>0)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)<65536)then begin FormPamyt.OcenkaPamyati.Caption:='1';FormPamyt.Label6.Caption:='-балл(Очень слабая)';end;

if(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>63488)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)<131072)then beginFormPamyt.OcenkaPamyati.Caption:='2';FormPamyt.Label6.Caption:='-балла(Слабая)';end;

if(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>129024)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)<262144)then beginFormPamyt.OcenkaPamyati.Caption:='3';FormPamyt.Label6.Caption:='-балла(Нормальная)';end;

if (StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>260096)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)<524288)then beginFormPamyt.OcenkaPamyati.Caption:='4';FormPamyt.Label6.Caption:='-балла(Хорошая)';end;

if(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>522240)then beginFormPamyt.OcenkaPamyati.Caption:='5';FormPamyt.Label6.Caption:='-баллов(Отличная)';end;

end;

procedure TForm1.Image4Click(Sender: TObject);

var

 OsVersion: TOSVersionInfo;

 PathArray:Array[0..255] of char;

begin

Form1.Visible:=False;

FormOS.Visible:=True;

//OS

 OSVersion.dwOSVersionInfoSize := SizeOf(OSVersion);

 if GetVersionEx(OSVersion) then

  begin

   FormOS.VersionLabel.Caption:= Format('%d.%d(%d.%s)',[OSVersion.dwMajorVersion,OSVersion.dwMinorVersion,(OSVersion.dwBuildNumber and $FFFF),OSVersion.szCSDVersion]);

   case OSVersion.dwPlatformID of

    VER_PLATFORM_WIN32s:        FormOS.VersionNumberLabel.Caption:= 'Windows 3.1';

    VER_PLATFORM_WIN32_WINDOWS:FormOS.VersionNumberLabel.Caption := 'Windows 95';

    VER_PLATFORM_WIN32_NT:     FormOS.VersionNumberLabel.Caption := 'Windows NT';

   else                       FormOS.VersionNumberLabel.Caption := '';

   end;  //of case

  end; //of if

 FillChar(PathArray, SizeOf(PathArray), #0);

 GetWindowsDirectory(PathArray,255);

 FormOS.WindowsDirLabel.Caption:=Format('%s',[PathArray]);

 FillChar(PathArray, SizeOf(PathArray), #0);

 ExpandEnvironmentStrings('%TEMP%', PathArray, 255);

 FormOS.TempDir.Caption:=Format('%s',[PathArray]);

if FormOS.VersionNumberLabel.Caption='Windows NT'then

begin

FormOS.OcenkaOC.Caption:='2';FormOS.Label7.Caption:='-балла(Отличная)'end else

begin FormOS.OcenkaOC.Caption:='1';FormOS.Label7.Caption:='-балл(Старая)';end;

if FormOS.VersionNumberLabel.Caption='Windows NT'then FormOS.WindowsOS.Caption:='NT/2000/XP'elseFormOS.WindowsOS.Caption:='95/98/ME';

end;

procedure TForm1.Image3Click(Sender: TObject);

var

i:Integer;

begin

case GetDeviceCaps(Canvas.Handle, TECHNOLOGY) of

    DT_PLOTTER:    FormDisplay.Memo1.Lines.Add('Тип:Векторный плотер');

    DT_RASDISPLAY: FormDisplay.Memo1.Lines.Add('Тип:Растровый дисплей');

    DT_RASPRINTER: FormDisplay.Memo1.Lines.Add('Тип:Растровый принтер');

    DT_RASCAMERA:  FormDisplay.Memo1.Lines.Add('Тип:Растровая камера');

    DT_CHARSTREAM: FormDisplay.Memo1.Lines.Add('Тип:Поток символов');

    DT_METAFILE:   FormDisplay.Memo1.Lines.Add('Тип:Метафайл');

    DT_DISPFILE:   FormDisplay.Memo1.Lines.Add('Тип:Файл дисплея');

  end;

  FormDisplay.Memo1.Lines.Add('Ширина в миллиметрах'+IntToStr(GetDeviceCaps(Canvas.Handle, HORZSIZE)));

  FormDisplay.Memo1.Lines.Add('Высота в миллиметрах'+IntToStr(GetDeviceCaps(Canvas.Handle, VERTSIZE)));

  FormDisplay.Memo1.Lines.Add('Ширина в пикселях'+IntToStr(GetDeviceCaps(Canvas.Handle, HORZRES)));

  FormDisplay.Memo1.Lines.Add('Высота в пикселях'+IntToStr(GetDeviceCaps(Canvas.Handle, VERTRES)));

 FormDisplay.Memo1.Lines.Add('Количествопикселей на дюйм по горизонтали '+

   IntToStr(GetDeviceCaps(Canvas.Handle, LOGPIXELSX)));

  FormDisplay.Memo1.Lines.Add('Количествопикселей на дюйм по вертикали '+

   IntToStr(GetDeviceCaps(Canvas.Handle, LOGPIXELSY)));

 FormDisplay.Memo1.Lines.Add('Количествобит на пиксель '+

   IntToStr(GetDeviceCaps(Canvas.Handle, BITSPIXEL)));

 FormDisplay.Memo1.Lines.Add('Количествоцветовых плоскостей '+

   IntToStr(GetDeviceCaps(Canvas.Handle, PLANES)));

 FormDisplay.Memo1.Lines.Add('Количествоцветов в системной палитре '+

   IntToStr(GetDeviceCaps(Canvas.Handle,SIZEPALETTE)));

 FormDisplay.Memo1.Lines.Add('Вертискальнаячастота развёртки '+

   IntToStr(GetDeviceCaps(Canvas.Handle, VREFRESH)));

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_BANDING)=RC_BANDING then

        FormDisplay.Memo1.Lines.Add('Требуетьсясегментация');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_BITBLT)=RC_BITBLT then

        FormDisplay.Memo1.Lines.Add('Можетпередавать Bitmaps');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_BITMAP64)=RC_BITMAP64 then

        FormDisplay.Memo1.Lines.Add('ПоддержкаBitmaps > 64K');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_DI_BITMAP)=RC_DI_BITMAP then

        FormDisplay.Memo1.Lines.Add('ПоддержкаSetDIBits and GetDIBits');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_DIBTODEV)=RC_DIBTODEV then

        FormDisplay.Memo1.Lines.Add('ПоддержкаSetDIBitsToDevice');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_FLOODFILL)=RC_FLOODFILL then

        FormDisplay.Memo1.Lines.Add('Can PerformFloodfills');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_GDI20_OUTPUT)=RC_GDI20_OUTPUT then

        FormDisplay.Memo1.Lines.Add('ПоддержкаWindows 2.0 возможности');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_PALETTE)=RC_PALETTE then

        FormDisplay.Memo1.Lines.Add('Основано напалитке');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_SCALING)=RC_SCALING then

        FormDisplay.Memo1.Lines.Add('Поддержкамасштабирования');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_STRETCHBLT)=RC_STRETCHBLT then

        FormDisplay.Memo1.Lines.Add('ПоддержкаStretchBlt');

  if (GetDeviceCaps(Canvas.Handle, RASTERCAPS) and

      RC_STRETCHDIB)=RC_STRETCHDIB then

        FormDisplay.Memo1.Lines.Add('ПоддержкаStretchDIBits');

  if GetDeviceCaps(Canvas.Handle, CURVECAPS)=CC_NONEthen

    FormDisplay.Memo1.Lines.Add('Устройствоне поддерживает кривые')

 else

  begin

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_CIRCLES)=CC_CIRCLES then

          FormDisplay.Memo1.Lines.Add('ПоддержкаCirles');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_PIE)=CC_PIE then

          FormDisplay.Memo1.Lines.Add('Поддержка PieWedges');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_CHORD)=CC_CHORD then

          FormDisplay.Memo1.Lines.Add('ПоддержкаChords');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_ELLIPSES)=CC_ELLIPSES then

          FormDisplay.Memo1.Lines.Add('ПоддержкаEllipses');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_WIDE)=CC_WIDE then

          FormDisplay.Memo1.Lines.Add('ПоддержкаWide Borders');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_STYLED)=CC_STYLED then

          FormDisplay.Memo1.Lines.Add('ПоддержкаStyled Borders');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_WIDESTYLED)=CC_WIDESTYLED then

          FormDisplay.Memo1.Lines.Add('ПоддержкаWide And Styled Borders');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_INTERIORS)=CC_INTERIORS then

          FormDisplay.Memo1.Lines.Add('ПоддержкаInteriors');

    if (GetDeviceCaps(Canvas.Handle, CURVECAPS) and

        CC_ROUNDRECT)=CC_ROUNDRECT then

          FormDisplay.Memo1.Lines.Add('ПоддержкаRounded Rectangles');

  end;

  if GetDeviceCaps(Canvas.Handle, LINECAPS)=LC_NONEthen

    FormDisplay.Memo1.Lines.Add('Device Does NotSupport Lines')

  else

  begin

    if (GetDeviceCaps(Canvas.Handle, LINECAPS) and

        LC_POLYLINE)=LC_POLYLINE then

          FormDisplay.Memo1.Lines.Add('ПоддержкаPolylines');

    if (GetDeviceCaps(Canvas.Handle, LINECAPS) and

        LC_MARKER)=LC_MARKER then

          FormDisplay.Memo1.Lines.Add('ПоддержкаMarkers');

    if (GetDeviceCaps(Canvas.Handle, LINECAPS) and

        LC_POLYMARKER)=LC_POLYMARKER then

          FormDisplay.Memo1.Lines.Add('ПоддержкаMultiple Markers');

    if (GetDeviceCaps(Canvas.Handle, LINECAPS) and

        LC_WIDE)=LC_WIDE then

          FormDisplay.Memo1.Lines.Add('ПоддержкаWide Lines');

    if (GetDeviceCaps(Canvas.Handle, LINECAPS) and

        LC_STYLED)=LC_STYLED then

          FormDisplay.Memo1.Lines.Add('ПоддержкаStyled Lines');

    if (GetDeviceCaps(Canvas.Handle, LINECAPS) and

        LC_WIDESTYLED)=LC_WIDESTYLED then

          FormDisplay.Memo1.Lines.Add('ПоддержкаWide And Styled Lines');

    if (GetDeviceCaps(Canvas.Handle, LINECAPS) and

        LC_INTERIORS)=LC_INTERIORS then

          FormDisplay.Memo1.Lines.Add('ПоддержкаInteriors');

  end;

  if GetDeviceCaps(Canvas.Handle,POLYGONALCAPS)=PC_NONE then

    FormDisplay.Memo1.Lines.Add('Device Does NotSupport Polygons')

  else

  begin

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_POLYGON)=PC_POLYGON then

          FormDisplay.Memo1.Lines.Add('ПоддержкаAlternate Fill Polygons');

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_RECTANGLE)=PC_RECTANGLE then

          FormDisplay.Memo1.Lines.Add('ПоддержкаRectangles');

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_WINDPOLYGON)=PC_WINDPOLYGON then

          FormDisplay.Memo1.Lines.Add('ПоддержкаWinding Fill Polygons');

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_SCANLINE)=PC_SCANLINE then

          FormDisplay.Memo1.Lines.Add('ПоддержкаSingle Scanlines');

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_WIDE)=PC_WIDE then

          FormDisplay.Memo1.Lines.Add('ПоддержкаWide Borders');

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_STYLED)=PC_STYLED then

          FormDisplay.Memo1.Lines.Add('ПоддержкаStyled Borders');

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_WIDESTYLED)=PC_WIDESTYLED then

          FormDisplay.Memo1.Lines.Add('ПоддержкаWide And Styled Borders');

    if (GetDeviceCaps(Canvas.Handle, POLYGONALCAPS)and

        PC_INTERIORS)=PC_INTERIORS then

          FormDisplay.Memo1.Lines.Add('ПоддержкаInteriors');

  end;

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_OP_CHARACTER)=TC_OP_CHARACTER then

        FormDisplay.Memo1.Lines.Add('Capable ofCharacter Output Precision');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_OP_STROKE)=TC_OP_STROKE then

        FormDisplay.Memo1.Lines.Add('Capable ofStroke Output Precision');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_CP_STROKE)=TC_CP_STROKE then

        FormDisplay.Memo1.Lines.Add('Capable ofStroke Clip Precision');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_CR_90)=TC_CR_90 then

        FormDisplay.Memo1.Lines.Add('Поддержка 90Degree Character Rotation');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_CR_ANY)=TC_CR_ANY then

        FormDisplay.Memo1.Lines.Add('ПоддержкаCharacter Rotation to Any Angle');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_SF_X_YINDEP)=TC_SF_X_YINDEP then

        FormDisplay.Memo1.Lines.Add('X And Y ScaleIndependent');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_SA_DOUBLE)=TC_SA_DOUBLE then

        FormDisplay.Memo1.Lines.Add('ПоддержкаDoubled Character Scaling');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_SA_INTEGER)=TC_SA_INTEGER then

        FormDisplay.Memo1.Lines.Add('ПоддержкаInteger Multiples Only When Scaling');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_SA_CONTIN)=TC_SA_CONTIN then

        FormDisplay.Memo1.Lines.Add('Поддержка AnyMultiples For Exact Character Scaling');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_EA_DOUBLE)=TC_EA_DOUBLE then

        FormDisplay.Memo1.Lines.Add('ПоддержкаDouble Weight Characters');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_IA_ABLE)=TC_IA_ABLE then

        FormDisplay.Memo1.Lines.Add('ПоддержкаItalics');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_UA_ABLE)=TC_UA_ABLE then

        FormDisplay.Memo1.Lines.Add('ПоддержкаUnderlines');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_SO_ABLE)=TC_SO_ABLE then

        FormDisplay.Memo1.Lines.Add('ПоддержкаStrikeouts');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_RA_ABLE)=TC_RA_ABLE then

        FormDisplay.Memo1.Lines.Add('ПоддержкаRaster Fonts');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_VA_ABLE)=TC_VA_ABLE then

        FormDisplay.Memo1.Lines.Add('ПоддержкаVector Fonts');

  if (GetDeviceCaps(Canvas.Handle, TEXTCAPS) and

      TC_SCROLLBLT)=TC_SCROLLBLT then

        FormDisplay.Memo1.Lines.Add('Cannot ScrollUsing Blts');

//Видеорежим

begin

 i := 0;

 while EnumDisplaySettings(nil, i, Modes[i]) do

  begin

  FormDisplay.Memo2.Lines.Add(IntToStr(Modes[i].dmBitsPerPel)+''+IntToStr(Modes[i].dmPelsWidth)+' '+

                    IntToStr(Modes[i].dmPelsHeight)+'   '+IntToStr(Modes[i].dmDisplayFrequency));

   Inc(i);

  end;

end;

Form1.Visible:=False;

FormDisplay.Visible:=True;

end;

procedure TForm1.Image8Click(Sender: TObject);

begin

Form1.Visible:=False;

FormDiski.Visible:=True;

end;

procedure TForm1.Image7Click(Sender: TObject);

var

  lpDisplayDevice: TDisplayDevice;

  dwFlags: DWORD;

  cc: DWORD;

begin

  lpDisplayDevice.cb := sizeof(lpDisplayDevice);

  dwFlags := 0;

  cc := 0;

  while EnumDisplayDevices(nil, cc, lpDisplayDevice,dwFlags) do

  begin

    dec(cc);

    FormVideo.Video1.Caption:=(lpDisplayDevice.DeviceString);

    Form1.Visible:=False;

    FormVideo.Visible:=True;

  end;

end;

procedure TForm1.Image6Click(Sender: TObject);

begin

 Form1.Visible:=False;

 FormAbout.Visible:=True;

end;

end.

unit Unit2;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons, ExtCtrls, TeEngine,Series, TeeProcs, Chart,

  DbChart, jpeg, registry;

type

  TFormCPUSpeed = class(TForm)

    LabelCPUSpeed: TLabel;

    BitBtnStart: TBitBtn;

    BitBtnStop: TBitBtn;

    Timer1: TTimer;

    Chart1: TChart;

    Label1: TLabel;

    Image1: TImage;

    Series1: TFastLineSeries;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    LabelCPUName: TLabel;

    LabelCPUSpeedSR: TLabel;

    LabelCPUStat: TLabel;

    Label7: TLabel;

    Label6: TLabel;

    procedure BitBtnStartClick(Sender: TObject);

    procedure BitBtnStopClick(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure FormCloseQuery(Sender: TObject; varCanClose: Boolean);

  private

    { Private declarations }

      Stop: Boolean;

  public

    { Public declarations }

  end;

var

  FormCPUSpeed: TFormCPUSpeed;

  Flag:Integer;

implementation

uses Unit1;

{$R *.DFM}

function GetCPUSpeed: Double;

const

 DelayTime = 500;

var

 TimerHi, TimerLo: DWORD;

 PriorityClass, Priority: Integer;

begin

 PriorityClass :=GetPriorityClass(GetCurrentProcess);

 Priority := GetThreadPriority(GetCurrentThread);

 SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);

 SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_TIME_CRITICAL);

 Sleep(10);

 asm

  dw 310Fh

  mov TimerLo, eax

  mov TimerHi, edx

 end;

 Sleep(DelayTime);

 asm

  dw 310Fh

  sub eax, TimerLo

  sbb edx, TimerHi

  mov TimerLo, eax

  mov TimerHi, edx

 end;

 SetThreadPriority(GetCurrentThread, Priority);

 SetPriorityClass(GetCurrentProcess, PriorityClass);

 Result := TimerLo / (1000.0 * DelayTime);

end;

procedure TFormCPUSpeed.BitBtnStartClick(Sender:TObject);

begin

BitBtnStart.Enabled := False;

 BitBtnStop.Enabled := True;

 Stop := False;

 while not Stop do

  begin

   LabelCPUSpeed.Caption := FloatToStr(GetCPUSpeed);

   Application.ProcessMessages;

  end;

 BitBtnStart.Enabled := True;

 BitBtnStop.Enabled := False;

end;

procedure TFormCPUSpeed.BitBtnStopClick(Sender:TObject);

begin

Stop := True;

FormCPUSpeed.Visible:=False;

Form1.Visible:=True;

end;

procedure TFormCPUSpeed.Timer1Timer(Sender:TObject);

var

i:Real;

begin

i:=StrToFloat(LabelCPUSpeed.Caption);

Series1.AddXY(Time,i,'',clNone);

if Series1.Count>20 then Series1.Delete(0);

LabelCPUSpeedSR.Caption:=FloatToStr(round(StrToFloat(LabelCPUSpeed.Caption)-(abs((Series1.FirstValueIndex-Series1.LastValueIndex))/2)));

if (StrToFloat(LabelCPUSpeedSR.Caption)>0)and(StrToFloat(LabelCPUSpeedSR.Caption)<=500)thenbegin LabelCPUStat.Caption:='1'; Label6.Caption:='-балл(Оченьслабый)';end;

if(StrToFloat(LabelCPUSpeedSR.Caption)>500)and(StrToFloat(LabelCPUSpeedSR.Caption)<=1000)thenbegin LabelCPUStat.Caption:='2';Label6.Caption:='-балла(Слабый)';end;

if(StrToFloat(LabelCPUSpeedSR.Caption)>1000)and(StrToFloat(LabelCPUSpeedSR.Caption)<=1800)thenbegin LabelCPUStat.Caption:='3';Label6.Caption:='-балла(Средний)';end;

if(StrToFloat(LabelCPUSpeedSR.Caption)>1800)and(StrToFloat(LabelCPUSpeedSR.Caption)<=2600)thenbegin LabelCPUStat.Caption:='4';Label6.Caption:='-балла(Хороший)';end;

if(StrToFloat(LabelCPUSpeedSR.Caption)>2600)then  beginLabelCPUStat.Caption:='5';Label6.Caption:='-баллов(Оченьхороший)';end;

end;

procedure TFormCPUSpeed.FormCloseQuery(Sender:TObject;

  var CanClose: Boolean);

begin

Application.Terminate;

end;

end.

unit Unit6;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,

  Dialogs, StdCtrls, XPMan, FileCtrl, Buttons, jpeg,ExtCtrls;

type

  TFormDiski = class(TForm)

    VolumeSerial: TLabel;

    FileSystemName: TLabel;

    SectorsPerCluster: TLabel;

    BytesPerSector: TLabel;

    VolumeName: TLabel;

    DriveComboBox1: TDriveComboBox;

    Image1: TImage;

    Image2: TImage;

    BitBtn1: TBitBtn;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    procedure FormShow(Sender: TObject);

    procedure DriveComboBox1Change(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  procedure UpdateDisk;

  public

    { Public declarations }

  end;

var

  FormDiski: TFormDiski;

implementation

uses Unit1;

{$R *.dfm}

procedure TFormDiski.FormShow(Sender: TObject);

begin

UpdateDisk;

end;

procedure TFormDiski.UpdateDisk;

var

 lpRootPathName          : PChar;

 lpVolumeNameBuffer      : PChar;

 nVolumeNameSize         : DWORD;

 lpVolumeSerialNumber    : DWORD;

 lpMaximumComponentLength: DWORD;

 lpFileSystemFlags       : DWORD;

 lpFileSystemNameBuffer  : PChar;

 nFileSystemNameSize     : DWORD;

 FSectorsPerCluster: DWORD;

 FBytesPerSector  : DWORD;

 FFreeClusters    : DWORD;

 FTotalClusters   : DWORD;

begin

 lpVolumeNameBuffer      := '';

 lpVolumeSerialNumber    := 0;

 lpMaximumComponentLength:= 0;

 lpFileSystemFlags       := 0;

 lpFileSystemNameBuffer  := '';

 try

  GetMem(lpVolumeNameBuffer, MAX_PATH + 1);

  GetMem(lpFileSystemNameBuffer, MAX_PATH + 1);

  nVolumeNameSize := MAX_PATH + 1;

  nFileSystemNameSize := MAX_PATH + 1;

  lpRootPathName :=PChar(FormDiski.DriveComboBox1.Drive+':\');

  if GetVolumeInformation( lpRootPathName,lpVolumeNameBuffer,

      nVolumeNameSize, @lpVolumeSerialNumber,lpMaximumComponentLength,

      lpFileSystemFlags, lpFileSystemNameBuffer,nFileSystemNameSize )

   then

     begin

      VolumeName.Caption    := lpVolumeNameBuffer;

      VolumeSerial.Caption  :=IntToHex(HIWord(lpVolumeSerialNumber), 4) + '-' +IntToHex(LOWord(lpVolumeSerialNumber), 4);

      FileSystemName.Caption:=lpFileSystemNameBuffer;

      GetDiskFreeSpace(PChar(DriveComboBox1.Drive+':\'), FSectorsPerCluster, FBytesPerSector, FFreeClusters, FTotalClusters);

     end;

 finally

  FreeMem(lpVolumeNameBuffer);

  FreeMem(lpFileSystemNameBuffer);

  end;

 SectorsPerCluster.Caption:=IntToStr(FSectorsPerCluster);

 BytesPerSector.Caption:=IntToStr(FBytesPerSector);

end;

procedure TFormDiski.DriveComboBox1Change(Sender:TObject);

begin

UpdateDisk;

end;

procedure TFormDiski.BitBtn1Click(Sender: TObject);

begin

FormDiski.Visible:=False;

Form1.Visible:=True;

end;

end.


СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1.   Архангельский А.Я. Москва 2003 “Delphi 7.0”

2.   Фаронов В.В. Санкт-Питербург “Питер”2004 “Delphi программирование на языке высокогоуровня”

3.   delphimastak.ru

4.   Лекции по “СПО”

еще рефераты
Еще работы по информатике, программированию