Скачать 34.43 Kb.
|
Министерство образования и науки ДонНТУ кафедра ЭВМ Отчет по лабораторной работе по СПО на тему:”Определение конфигурации компьютера” Выполнил студент группы СП-08а Шеманаев Д. А. Проверил Шевченко О. Г. Донецк 2010
program Project1; {$APPTYPE CONSOLE} uses Windows, SysUtils, Registry; procedure GetDrives; var i: Integer; LogDrives: Int64; tp: DWord; free_size, total_size: Int64; begin WriteLn('Drives:'); LogDrives := GetLogicalDrives; for i := 1 to 64 do begin tp := LogDrives and 1; if tp = 1 then begin tp := GetDriveType(PChar(Chr(64 + i) + ':')); case tp of DRIVE_FIXED: begin GetDiskFreeSpaceEx(PWideChar(Chr(64 + i) + ':\'), Free_size, Total_size, nil); WriteLn('HDD: ' + Chr(64 + i) + ':\, Total: ' + IntToStr(Total_size shr 20) + 'Mb, Free: ' + IntToStr(Free_size shr 20) + 'Mb'); end; DRIVE_REMOVABLE: WriteLn('Removable: ' + Chr(64 + i) + ':\'); DRIVE_CDROM: WriteLn('CD/DVD: ' + Chr(64 + i) + ':\'); end; end; LogDrives := LogDrives shr 1; end; WriteLn; end; procedure KeyboardInfo; var s: string; begin WriteLn('Keyboard type:'); case GetKeyboardType(0) of 1: s := 'IBM PC/XT or compatible (83-key) keyboard'; 2: s := 'Olivetti ICO (102 key) keyboard'; 3: s := 'IBM PC/AT (84 key) or similar'; 7: s := 'IBM enhanced (101 or 102 keys) keyboard'; 5: s := 'NOKIA 1050 or similar'; 6: s := 'NOKIA 9140 or similar'; 4: s := 'Japanese keyboard'; end; WriteLn(s); WriteLn; end; procedure MouseInfo; begin WriteLn('Mouse info:'); WriteLn('Buttons: ' + IntToStr(GetSystemMetrics(SM_CMOUSEBUTTONS))); if (GetSystemMetrics(SM_MOUSEWHEELPRESENT) > 0) then WriteLn('Wheel present') else WriteLn('Wheel not present'); WriteLn; end; procedure VideoInfo; var lpDisplayDevice: TDisplayDevice; dwFlags: DWORD; cc: DWORD; DC: hDC; begin DC := CreateDC('DISPLAY',nil,nil,nil); WriteLn('Video info:'); WriteLn(Format('Screen size: %dx%d@%d', [GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), GetDeviceCaps(DC, BITSPIXEL)])); lpDisplayDevice.cb := sizeof(lpDisplayDevice); dwFlags := 0; cc := 0; while EnumDisplayDevices(nil, cc, lpDisplayDevice, dwFlags) do begin Inc(cc); WriteLn(lpDisplayDevice.DeviceString); end; DeleteDC(DC); WriteLn; end; procedure OSInfo; var Platform: string; BuildNumber: Integer; begin WriteLn('OS Version info:'); case Win32Platform of VER_PLATFORM_WIN32_WINDOWS: begin Platform := 'Windows 9x'; BuildNumber := Win32BuildNumber and $0000FFFF; end; VER_PLATFORM_WIN32_NT: begin Platform := 'Windows NT'; BuildNumber := Win32BuildNumber; end; else begin Platform := 'Windows'; BuildNumber := 0; end; end; if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) or (Win32Platform = VER_PLATFORM_WIN32_NT) then begin if Win32CSDVersion = '' then WriteLn(Format('%s %d.%d (Build %d)', [Platform, Win32MajorVersion, Win32MinorVersion, BuildNumber])) else WriteLn(Format('%s %d.%d (Build %d: %s)', [Platform, Win32MajorVersion, Win32MinorVersion, BuildNumber, Win32CSDVersion])); end else WriteLn(Format('%s %d.%d', [Platform, Win32MajorVersion, Win32MinorVersion])); WriteLn; end; procedure MemStat; var MemoryStatus: TMemoryStatus; begin WriteLn('Memory info:'); MemoryStatus.dwLength := SizeOf(MemoryStatus) ; GlobalMemoryStatus(MemoryStatus) ; with MemoryStatus do begin WriteLn(IntToStr(dwMemoryLoad) + '% memory in use') ; WriteLn(IntToStr(dwTotalPhys shr 20) + 'Mb Total Physical Memory') ; WriteLn(IntToStr(dwAvailPhys shr 20) + 'Mb Available Physical Memory') ; WriteLn(IntToStr(dwTotalPageFile shr 20) + 'Mb Total of Paging File') ; WriteLn(IntToStr(dwAvailPageFile shr 20) + 'Mb Available in paging file') ; end; WriteLn; end; begin try OSInfo; MemStat; VideoInfo; MouseInfo; KeyboardInfo; GetDrives; ReadLn; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. |
![]() | ![]() | Оформить отчет по лабораторной работе, в который включить название темы, цель работы, результаты проделанной работы, ответы на контрольные... | |
![]() | Оформить отчет по лабораторной работе, в который включить название темы, цель работы, результаты проделанной работы, ответы на контрольные... | ![]() | |
![]() | Цель. Научится подключать и создавать библиотеки элементов и редактировать существующие | ![]() | Цель работы: изучить синтаксис и семантику стандартных функций по работе со строками, научиться использовать в программах функции... |
![]() | Вывод: экспериментально исследовал схемы однополупериодного выпрямителя и ограничителя напряжения | ![]() | При выполнении лабораторной работы необходимо научиться использовать константы и переменные |
![]() | Дееспособная программная реализация поставленной задачи на языке программирования С | ![]() | Исходный код проекта, реализующий два метода нахождения определенных интегралов – метод трапеций и метод Симпсона |