Реферат по предмету "Информатика, программирование"


Мониторинг ОС

Волжский университет имени В.Н. Татищева
Факультет “Информатика и телекоммуникации”
Кафедра “Информатика и системы управления”
КУРСОВАЯ РАБОТА
по дисциплине: “Системное программное обеспечение”Тема: “МониторингОС”
Тольятти 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
      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
 else FormPamyt.Pamyt1.ForeColor := clActiveCaption;
 if (FormPamyt.Pamyt2.Progress
 else FormPamyt.Pamyt2.ForeColor := clActiveCaption;
 Form1.Visible:=False;
 FormPamyt.Visible:=True;
if(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>0)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)
if(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>63488)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)
if(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>129024)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)
if (StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)>260096)and(StrToFloat(FormPamyt.PolnayaFizPamyt.Caption)
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)
if(StrToFloat(LabelCPUSpeedSR.Caption)>500)and(StrToFloat(LabelCPUSpeedSR.Caption)
if(StrToFloat(LabelCPUSpeedSR.Caption)>1000)and(StrToFloat(LabelCPUSpeedSR.Caption)
if(StrToFloat(LabelCPUSpeedSR.Caption)>1800)and(StrToFloat(LabelCPUSpeedSR.Caption)
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.   Лекции по “СПО”


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.