ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Утиліта діагностики комп'ютера
         

     

    Інформатика, програмування

    Зміст:

    Технічне завдання ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 2
    Анотація ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3
    Введення ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5

    Глава 1. Огляд та аналіз подібних програм і вибір

    мови програмування

    1. Огляд та аналіз подібних програм ... ... ... ... ... ... ... ... ... 7

    2. Актуальність завдання ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 18

    3. Вибір мови програмування ... ... ... ... ... ... ... ... ... ... ... ... 19

    Глава 2. Розробка алгоритмів

    1. Розробка алгоритму ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 22

    2. Взаємодія між модулями ... ... ... ... ... ... ... ... ... ... 27

    Глава 3. Експлуатаційна частина

    1. Керівництво програмісту ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 28

    3.2 Керівництво користувача ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 38


    Висновок ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 44

    Список використаної літератури ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 45

    Додаток 1 Лістинг програми
    Додаток 2 Граф - листи
    Технічне завдання

    Розробити утиліту діагностики і тестування основних пристроїв
    ЕОМ.

    Дана утиліта призначена для визначення та тестування основнихпристроїв ЕОМ, таких як жорсткий диск, центральний процесор, оперативнапам'ять і т.д.

    Системні вимоги до програми:

    . Intel 486DX 50 MHz і вище.

    . ОС Windows 95/98/2000/ХР.

    . ОЗУ 16 Mb.

    . Вільного місця на диску не менше 2 Mb.

    Анотація

    Дана пояснювальна записка містить інформацію про виконанувипускної роботи. Випускна робота являє собою утиліту діагностики ітестування основних пристроїв ЕОМ.

    Пояснювальна записка містить:

    сторінці - 45

    Малюнків - 21

    Граф-листів - 4

    Також до випускної роботи додається лістинг вихідної програми,що містить у своєму складі 27 сторінок вихідного скомпільованій текступрограми складеного на мові програмування Borland Delphi 6.0
    Enterprise.

    Анотація

    Бул тушундуруучу Катта Меніни бутуруу Ішим жонундо жазилган. Бутурууішімдін ТЕМАС бул електрондук есептоочу машінани діагностика Жана тесткилган програма.

    Катта томонкулор бар:

    Барактар - 45

    Суроттор - 21

    Чійілген кагаздар - 4 < p> Анда башка бутуруу Журавльов программанин коду кошулган. Бул програма
    Borland Delphi 6.0 Enterprise программалоо тілінде жазилган Жана анинколому - 27 барак.

    Annotation

    This explanatory note have information about tesis.
    Tesis about utility which is making diagnostic main components of PC.

    Explanatory note contents:

    Pages - 45

    Images - 21

    Flowgraph - 4

    There is also source code of program, which is contains 27 pages of code which was compiled in Borland Delphi 6.0 Enterprise.

    Введення

    Комп'ютер давно став невід'ємним атрибутом нашого побуту - і на роботі,і вдома. Але чи досить добре ми знаємо свого залізного помічника, йогосильні і слабкі сторони? Давно відомо, що найбільшою ефективністюмає добре збалансована система, без явних або прихованих "пляшковихшийок "окремих складових частин, що перешкоджають досягненню всійсистемою максимальної продуктивності при мінімальних матеріальнихвитратах.

    Навряд чи знайдеться знавець, що вміє за зовнішнім виглядом комп'ютера відрізнитиодну «трієчку» (80386) від іншої (Pentium III), або ж «четвірку» (80486)від іншої «четвірки» (Pentium IV). А якщо корпус не сірий стандартний, аоригінальний чорний або з металевим блиском, при тому незвичайноїкомпонування, то завдання ще більш ускладнюється: не завжди вдасться упізнатинавіть XT. Звичайно, неcколько допоможе шильдик «Intel Inside» або світловетабло з цифрами, які повинні показувати тактову частоту. Та от біда,перше може бути відсутнім, а інформація на другий ніяк не пов'язана зреальним значенням. Та й ПК - це аж ніяк не тільки процесор, не заважає що -небудь знати і про свій диск або звукової плати.

    Частина даних вдасться отримати, якщо як ОС встановлена Windows.
    А що робити, якщо ОС не змогла визначити тип пристрою або взагалі йоговиявити? Або встановлена не Windows, а будь-яка інша система,якої слід повідомити ці дані? У цьому випадку на допомогу можуть прийтиспеціальні утиліти, призначені для визначення конфігураціїкомп'ютера. Більша частина з них написана для DOS. З одного боку, цепояснюється тим, що саме в DOS програма має повний доступ до «заліза»,тоді як в Windows він утруднений. З іншого - DOS все-таки є певним
    «Спільним знаменником» для багатьох ОС, тобто програми для неї теоретичноповинні працювати скрізь, хоча, можливо, і з деякими обмеженнями. Та йзавантажити DOS можна з однієї дискети.

    Ось чому я прийняв рішення написати цю утиліту, яка могла бдопомогти багатьом користувачам персональних комп'ютерів дізнатися більшеінформації про своєму залізному друге.


    Глава 1. Огляд та аналіз подібних програм і вибір

    мови програмування

    1.1 Огляд і аналіз подібних програм

    У цьому огляді я оглянув продукти, доступні через Мережу.

    Norton Utilities

    Серед пакетів сервісних утиліт, без сумніву, "першим серед рівних",є Norton Utilities що випускається фірмою Symantec і вже доріс до
    2002-й версії. Яка входить у пакет утиліта System Information надаєзручно згруповану інформацію по всіх основних компонентів комп'ютера.
    Є можливість деталізації інформації за деякими розділами, а так самосформувати звіт. Досить наочно й барвисто, з використанням круговихдіаграм, оформлена інформація про ефективність і використовується диск.
    Протестувати процесор можна, натиснувши кнопку Benchmark. Програма видаєграфік зразкового швидкодії Вашої системи, за одиницю виміруприймається продуктивність РС на базі процесора Intel 386SX-16MHz. Дляпорівняння дані рейтинги трьох різних комп'ютерів. При всій моїй повазідо дійсно чудовому пакету Norton Utilities 2001, утиліта System
    Information є досить посереднім інструментом для отриманнявичерпної інформації про компоненти системи, плюс до цього не дуженаочно, особливо порівняно з двома нижчеописаних програмами,відображаються відомості про систему, ну і зовсім добиває своєю примітивністюі не вселяє довіри результатами, тестова підсистема програми.
    Результат - не більш ніж задовільно.

    SiSoft SANDRA

    Пакет діагностичних утиліт SiSoft SANDRA 2001 (абревіатурарозшифровується як System Analyzer Diagnostic and Reporting Assistant,що означає: помічник у проведенні аналізу і діагностики системи) євідмінним рішенням для непрофесійного користувача. До складу повноїверсії пакету входять близько 70 модулів для збору інформації про всіосновних компонентах PC (включаючи CPU, вінчестер, відео-і аудіосистеми,принтери, комунікаційне обладнання, клавіатура, миша та ін),тестування (перевіряються CPU, дискові накопичувачі, пам'ять та мережевеобладнання, включаючи Burn-in Wizard - майстер перевірки системи векстремальних умовах, по черзі запускає обрані тестові модулі) івироблення рекомендацій щодо поліпшення їх роботи. Є можливість перевіркирозташування і вмісту основних конфігураційних файлів. Графічнийінтерфейс програми досить наочний і дозволяє отримати найповнішуінформацію про комп'ютер, включаючи часом і недокументовані. Головне вікнопрограми нагадує панель керування Windows, тільки з великимкількістю ярликів. Кожен з них відповідає окремої утиліті,відповідальної за збирання і відображення інформації про певний устрій,що входить в систему, з наданням даних про виробника, версії, датувиготовлення, швидкодії і т.п. В даний час підтримується ОС
    Windows 95/98, але, за повідомленнями розробників, в наступних версіях Sandraбуде орієнтована на підтримку Windows 2000/XP, що пов'язано з переходомпрограми на Unicode, який підтримується в Windows 9х тільки частково.
    Пакет поставляється в двох версіях: професійної, що є умовно -безкоштовною, і вимагає за реєстрацію 29 $ і стандартною, повністюбезкоштовною, але має деякі обмеження. Зокрема, відсутні ряддодаткових діагностичних модулів, а й залишилися цілком достатньодля детальної діагностики системи. Оцінка однозначна - відмінно.

    HARDiNFO PRO

    Не менш цікава програма HARDiNFO PRO, розроблена фірмою
    Ultimate Systems для користувачів ОС Windows 95/98. Крім неї, існуєваріант HARDiNFO 2000, що виконує ті ж функції, але оптимізований для
    Windows Me/2000. Інтерфейс програми дуже барвистий і наочний. На кожнійз закладок надано вичерпну інформацію про процесор, аудіо-,відео-і комунікаційної підсистемах, принтерах і накопичувачах. Крімцього, звідти ж можна запустити відповідні перевірочні тести ідеякі системні утиліти. Безкоштовна оціночна версія програмипрацездатна тільки 14 днів, вартість реєстрації становить 29 $. Загальнівраження від програми дуже хороші, вона цілком гідна найвищоїоцінки - відмінно.

    Informer

    Informer 3.40 - дуже непогана вітчизняна розробка,призначена для аналізу конфігурації комп'ютера і видає по нійдокладний звіт. Програма надає досить широкі можливостіаналізу, так, по заявах розробника, є можливість визначення
    110 типів процесорів і 19 - співпроцесорів, причому вимірювання тактовоючастоти здійснюється з точністю 0.1МГц. Розпізнаються 2574 моделеймоніторів, 324 виробників материнських плат, велику кількістьрізних накопичувачів і AGP/PCI-пристроїв і визначаються режими їх роботи.
    Як недолік можна відзначити повну відсутність можливості оцінитипродуктивність окремих компонентів системи. Програма Informerпризначена для використання під управлінням ОС DOS, тому їй притаманнівсі витрати примітивного псевдографічний інтерфейсу, але це в якийсьмірою компенсується дуже скромними її розмірами - усього 200 Kb, щодозволяє використовувати утиліту з звичайної дискети. Informer, крім DOS,чудово працює і під Windows 95/98/Ме. Розповсюджується безкоштовно.
    Підсумкову оцінку можна визначити як добре.

    Cool Info

    Не дуже відома у нас в країні утиліта Cool Info 99, останняверсія якої, 2.7i, призначена для роботи під управлінням Windows
    95/98 і повністю сумісна з різними версіями Windows NT. Як ібільшість інших аналогічних утиліт, Cool Info 99 легко справляється звизначенням більшості компонентів сучасних комп'ютерів: процесорів,моніторів, відео-і аудіокарти, дискових накопичувачів, модулів пам'яті,принтерів, мережевих і комунікаційних систем, клавіатур, мишей. Крімцього, виводиться докладна інформація про файлову систему, встановленихдрайвери, шрифти, та ін Поряд зі зручним графічним інтерфейсомкористувача, Cool Info 99 забезпечує можливість запису отриманихрезультатів в базі даних або текстовому форматі, а от замірятипродуктивність обладнання не вийде. Cool Info 99 поширюєтьсяяк shareware-продукт, тому, після 30 днів ознайомлення, виробникипросять заплатити 20 доларів. Програма добротна, але без родзинки, оцінка
    - Задовільний.

    Dr.Hardware

    Ще з часів DOS однієї з найпопулярніших утиліт, що тестуютькомп'ютерне "залізо", була Dr.Hardware. Зараз вже актуальна 2001-я їїверсія, причому є варіанти для Windows 95/98/Ме
    (Standard/Professional), для Windows NT/2000 (Professional). Стандартнаверсія - найдешевша, призначена для домашніх користувачів,професійна - доповнено засобами автоматичного створення звітів імає можливість контролю моніторингу системної плати. Існує ще йверсія Premium, аналогічна Professional, але дозволяє всеопераційні системи сімейства Windows: 95/98/Ме/NT/2000. У процесіаналізу Dr. Hardware збирає відомості про встановлений устаткуванні нетільки з системного реєстру, але і використовуючи установки BIOS-а, а так самобезпосереднього звертаючись до портів введення/виводу. Це дозволяє, крімствореного ОС списку обладнання, додатково перевірити коженкомпонент. У результаті Dr. Hardware може надати інформацію навіть ввипадку некоректної установки компонента. Результати тестуванняпредставлені у вигляді кругових і лінійних діаграм, що дуже зручно.
    Програма регулярно оновлюється і тому може розпізнавати самісучасні процесори, чіпсети і інші нові компоненти системи. При всіхдостоїнства Доктора Харді, деяка ваговитість його зовнішньогооформлення не дозволяє виставити йому найвищий бал, але добре - тверде.

    HWiNFO

    Рекордсменом за частотою оновлень можна визнати утиліту HWiNFO
    (Hardware Info), оновлення якої виходять щомісячно. Під однією назвоютут, фактично, представлені дві утиліти: HWiNFO для DOS (останняверсія - 4.7.6) і HWiNFO32 для WindowsNT/2000 (остання версія - 0.9beta).
    HWiNFO32, як зазначено на сайті розробника, підтримує і Windows 95/98,але дуже обмежений і без гарантії коректності результатів. Навіщо взагалітоді декларувати таку підтримку? Як очевидне гідність можнавідзначити досить скромні, для програми такого типу, розміри, що становлятьвсього 516Kb. Набір аналізованих пристроїв досить широкий і HWiNFOпрактично не поступається іншим аналогічним програмам. Крім звичайнихбенчмарків процесора і накопичувачів, є можливість провеститестування CPU на помилки, крім цього, відображаються дані, що знімаються зсенсорів моніторингу системної плати. Хоча зовнішній вигляд програми небросок,вона цілком заслуговує гарної оцінки, але, із-за некоректної роботи внайпоширенішою ОС - Windows 9x, виходить тільки --задовільно.

    PC Information

    Інформаційна програма PC Information дає досить повнеуявлення про комп'ютер користувача. Ця інформація включає дані пропроцесорі, системній платі, BIOS-е, моніторі, пам'яті, дисковихнакопичувачах, мережевих, відео-і звукових платах, модеми, принтерах, мишки,параметрах мережевого з'єднання, а також про встановлені операційноїсистемі і програмному забезпеченні. Як завжди, більшість данихзбирається автоматично, але окрема інформація про некоректновстановленому обладнанні може бути введена вручну. Програма, маючирозмір 416 Kb, не вимагає інсталяції і може бути запущена з дискети.
    Великим достоїнством PC Information є підтримка всіх ОС Windows,починаючи з версії 3.1 (хто ще пам'ятає таку?). При бажанні програму можназапускати з командного рядка, використовуючи додаткові параметри. Утилітапоширюється за принципом shareware, реєстрація за 15 $ дозволитьзберігати та роздруковувати звіт про виконану роботу у текстовому, CSV або
    HTML-форматі. Оцінка - добре.

    Звичайно, розглянутими вище утилітами все різноманіття програм,відображають "залізну" начинку комп'ютера, не обмежується, але навряд читі, що залишилися за рамками огляду, хоч у чомусь принципово відрізняютьсявід уже розглянутих. За великим рахунком, будь-яка з них здатна датипрактично вичерпну інформацію про апаратної конфігурації комп'ютера.

    1.2 Актуальність завдання

    Існують безліч інших програм діагностики комп'ютера, і у Васможе виникнути цілком природне запитання, а в якій мірі моя утилітакраще від існуючих, або хоча б чим вона виділяється з їх загального ряду?
    Найкраща відповідь Ви отримаєте, якщо я опишу Вам одну конкретно взяту програму,яка вважається однією з найбільш «просунутих» у своєму класі - це
    Sisoft Sandra 2001 (System Analyzer Diagnostic and Reporting Assistant).

    До складу повної версії пакету входять близько 70 модулів для зборуінформації про всі основні компоненти PC (включаючи CPU, вінчестер, відео -і аудіосистеми, принтери, комунікаційне обладнання, клавіатура, миша іпр.), тестування (перевіряються CPU, дискові накопичувачі, пам'ять та мережевеобладнання) і вироблення рекомендацій щодо поліпшення їх роботи. Єможливість перевірки розташування і вмісту основних конфігураційнихфайлів. Графічний інтерфейс програми досить наочний і дозволяєотримати найповнішу інформацію про комп'ютер, включаючи часом інедокументовані.

    Єдиний недолік Сандри - це те, що її професійнаверсія коштує 29 доларів.

    Виходячи з вищезазначеного, я прийшов до висновку, що єдинимгідністю моєї утиліти є її безкоштовність для кінцевогокористувача.
    1.3. Вибір мови програмування

    Потреба в розробці та застосуванні ефективних і адекватнихреальної дійсності комп'ютерних програм і технологій сьогоднізростає. Комп'ютерна технологія незамінна, оскільки вона даєможливість оптимізувати і раціоналізувати управлінську функцію зарахунок застосування нових коштів збору, передачі і перетворення інформації.

    Випускна робота написана в програмному середовищі Delphi. Це наводить напитання, а чому обрано саме цю мову програмування?

    Delphi має широкий набір можливостей, починаючи відпроектувальника форм і закінчуючи підтримкою ндех форматів популярних базданих. Середа усуває необхідність програмувати такі компоненти
    Windows загального призначення, як мітки, піктограми і навіть діалогові панелі.
    Працюючи в Windows, ви неодноразово бачили однакові «об'єкти» у багатьохрізноманітних програмах. Діалогові панелі (наприклад, Choose File і Save
    File) є прикладами багаторазово використовуваних компонентів, вбудованихбезпосередньо в Delphi, що дозволяє пристосувати ці компоненти донаявний завдання, щоб вони працювали саме так, як потрібно створюваномудодатком. Також тут є заздалегідь певні візуальні і невізуальні об'єкти, включаючи кнопки, об'єкти з даними, меню і вжепобудовані діалогові панелі. За допомогою цих об'єктів можна, наприклад,забезпечити введення даних просто кількома натисканням кнопок миші, невдаючись до програмування. Та частина, яка безпосередньо пов'язана зпрограмуванням інтерфейсу користувача системою, що отримала назвувізуальне програмування.

    Візуальне програмування як би додає новий вимір пристворення додатків, даючи можливість зображати ці об'єкти на екранімонітора до виконання самої програми. Без візуального програмуванняпроцес відображення вимагає написання фрагменту коду, що створює інастрающего об'єкт «за місцем». Побачити закодовані об'єкти було можливотільки в ході виконання програми. При такому підході досягнення того,щоб об'єкти виглядали і поводилися заданим чином, стаєвтомливим процесом, який вимагає неодноразових виправленьпрограмного коду з наступною прогонкою програми і спостереження за тим,що в підсумку вийшло.

    Завдяки засобам візуальної розробки можна працювати з об'єктами,тримаючи їх перед очима й одержуючи результати практично відразу. Здатністьбачити об'єкти такими, якими вони з'являються в ході виконання програми,знімає необхідність проведення безлічі операцій вручну, що характернодля роботи в середовищі, не володіє візуальними засобами - незалежновід того, є вона об'єктно-орієнтованої чи ні. Після того, якоб'єкт поміщений у форму середовища візуального програмування, всі його атрибутивідразу відображаються у вигляді коду, який відповідає об'єкту як одиниці,що виконується під час роботи програми.

    Розміщення об'єктів у Delphi пов'язано з більш тісними стосунками міжоб'єктами і реальним програмним кодом. Об'єкти поміщаються в вашу форму,при цьому код, який відповідає об'єктам, автоматично записується у вихіднийфайл. Цей код компілюється, забезпечуючи істотно вищупродуктивність, ніж візуальне середовище, яка інтерпретує інформаціюлише в ході виконання програми.
    Глава 2. Розробка алгоритмів

    2.1. Розробка алгоритму

    Розглянемо алгоритм роботи основної програми.

    У структурній схемі програми показані основні взаємозв'язки між окремими модулями програми.

    Глава 3. Експлуатаційна частина

    3.1. Керівництво программістa

    У програмі були застосовані, велика кількість компонентів Windows,різні обробник подій, процедури та функції. При розробці програмибуло створено 3 модулі (Main, Diag, Example). У модулі Main билa прімененa 1процедурa.

    Короткий опис основних використаних функцій

    Використовуємо функцію GetComputerName для отримання імені комп'ютера,функцію GetUserName для отримання імені користувача і функцію
    GetSystemInfo для отримання інформації про процесор (найбільш повно данафункція реалізована в Windows NT, де вона повертає і кількість процесорів іїх тип і т.д.).

    Перейдемо до параметрів екрану. Тут ми будемо використовувати і Win32 APIфункції і стандартні об'єкти VCL. Так для отримання дозволу екрану намзнадобиться об'єкт TScreen (його властивості Width і Height). Рештапараметри ми отримаємо через контекст драйвера пристрою DC використовуючифункцію GetDeviceCaps.

    Також буде цікава інформація про пам'ять. Тут нам допоможе функція
    GlobalMemoryStatus, яка повертає інформацію за обсягом фізичної тавіртуальної пам'яті.

    Дізнаємося інформацію про ОС. Функція GetWindowsDirectory поверне шлях докаталогу, де встановлена система, функція GetSystemDirectory - досистемного каталогу. Для визначення версії ОС скористаємося функцією
    GetVersionEx.

    Опишемо функцію BIOSInfo з параметром, що характеризує поточну ОС.
    Важливо відзначити, що спосіб отримання інформації про дату BIOS різний. Для
    NT отримаємо інформацію з реєстру, а для Windows 95/98 з відповідногоділянки пам'яті. Ці два способи взаімоісключаеми, тому що в Windows 95/98немає відповідного розділу реєстру, а прямий доступ до пам'яті в NTнеможливий.

    Розглянемо функцію SystemParametersInfo, яка дозволяє управлятидеякими налаштуваннями системи. Область застосування даної функції для NT і
    Windows 95/98 різна. Навмисне виберемо деяку загальну частину для обохсистем.

    Також можна дозволити користувачеві змінювати і зберігати настройкисистеми за своїм смаком. Тут можна використовувати функцію
    SystemParametersInfo. Для компонентів tbKeyboardSpeed, tbKeyboardDelay,cbScreenSaverActive, cbSpeaker, edSSTimeOut в ObjectInspector перейдемо назакладку Events і змінимо подія OnChange (для tbKeyboardSpeed,tbKeyboardDelay), OnClick (для cbScreenSaverActive, cbSpeaker) і OnExitдля edSSTimeOut на Change.

    Використання Delphi спільно c Функція Microsoft Win32 API дозволитьпрограмісту створити більш функціонально багаті і гнучкі програми.

    Процедури модуля Main:

    procedure TForm11.Timer1Timer (Sender: TObject);

    Дана процедура використовується для показу Сплеш -вікна при початковійзавантаженні програми. Після свого виконання вона показує головну форму.

    Процедури модуля Diag: procedure TDiadnostic.AboutClick (Sender: TObject);
    Процедура виконує функцію відкриття вікна або форми. Це те саме можнареалізувати двома способами:

    1) Form1.Show;

    2) Form1.Visible: = True;

    procedure GetPrName (processor1: Tlabel);
    Процедура визначає тип процесора.

    procedure GetRegInfoWinNT;

    Процедура використовується для отримання інформації з реєстру Windows. УЗокрема, використовується для виода інформації про базової системи введення-
    Висновку.

    У більшості випадків дуже важливою є інформація про тип BIOS. Рядок типу BIOS зберігається за адресою 0FFA68, а рядок дати BIOS за адресою 0FFFF5. Це фізичні адреси, отже адреси "сегмент: зсув": 0F000: FA68 і 0F000: FFF5.

    При включенні комп'ютера BIOS ініціалізує свої ресурси і шукає, починаючи з адреси 0C0000, ПЗУ встановлених карт. Кожне ПЗУ має підпис, який символізується байтами 55AAh, якщо BIOS знаходить ці байти, то він дізнається розмір ПЗУ, який зберігається в наступному байті і містить число сторінок по 512 байт, після чого по можливості вважає контрольну суму цього ПЗУ (вона повинна бути рівна нулю ) і передає управління на 4-й байт. Також BIOS вважає контрольну суму байт CMOS, розташованих в осередках 10h-2Dh. Тому що в цих комірках зберігається важлива, для продовження роботи, інформація та її пошкодження неприпустимі.

    Виходячи з цього, програма визначає тип BIOS і вважає контрольні суми Відео ПЗУ і CMOS.

    function GetDisplayDevice: string; дана функція визначає основні параметри відеокарти, такі якрозмір пам'яті і рядок даних виробника.

    function LocalIP: string; дана функція повертає IP адреса поточного комп'ютера.

    Function GetCPUSpeed: Double;

    З'ясовуємо тактову частоту процесора .

    function CheckDriveType (ch: char): String; повертає тип диска (змінний, жорсткий)

    procedure TDiadnostic.FormCreate (Sender: TObject); створює головне вікно програми

    function getprintername: string;

    Повертає ім'я принтера, мережного або локального.

    procedure TDiadnostic.Button4Click (Sender: TObject); виконує оновлення інформації про стан пам'яті

    procedure TDiadnostic.disknameChange (Sender: TObject); виконує зміну імені диска

    procedure TDiadnostic.FormClose (Sender: TObject; var Action:
    TCloseAction);

    Процедура виконує функцію виходу з програми. Миттєвий вихід зпрограми.

    Вихід з програми можна організувати декількома способами, такимияк:

    - Application.Terminate;

    - Form1.Hide;

    - Form1.Visible: = False;

    - Form1 . Close;

    Ці команди практично не відрізняються один від одного. Єдинимвідмінністю може бути те, що перший вихід працює набагато швидше, тобтододаток закривається миттєво.

    function OpenCD (Drive: Char): Boolean; виконує функцію відкриття сд-рома

    function CloseCD (Drive: Char): Boolean; виконує функцію закриття сд-рома .

    procedure TDiadnostic.SpeedButton1Click (Sender: TObject);

    Процедура виконує функцію відкриття вікна або форми. У даному випадкувідкривається вікно тестування процесора.

    Процедури модуля Example:

    procedure TForm1.Button1Click (Sender: TObject); виконує вимірювання тактової частоти процесора.

    Слід докладніше розповісти про ідентифікації процесора. Як відомо, в процесорах п'ятого покоління, а також у деяких четвертого покоління, з'явилася команда CPUID. Ця команда дозволяє більше дізнатися про встановлений в системі процесорі. Обмін інформацією відбувається через основні регістри (EAX, EBX, ECX, EDX).

    Параметри задаються через регістр EAX. Таким чином, щоб дізнатися інформацію про версію процесора, я записав у EAX 1 і викликав CPUID, після чого в EAX зберігався результат. Для того, щоб дізнатися виробника процесора, я записав у EAX 0 і викликав CPUID, після чого в основних регістрах знаходиться, унікальна для кожного виробника, рядок. Для AMD це "AuthenticAMD", для Intel -

    "GenuineIntel", для Cyrix - "CyrixInstead". Тепер розповім про ідентифікацію процесорів, що не мають інструкції CPUID. Зрозуміло, що настільки докладну інформацію, в цьому випадку отримати неможливо. Оскільки програма вимагає процесор не нижче третього покоління, я почав перевірку саме з цього покоління. Наявність 386-го процесора визначається недоступність для запису 18-го біта регістра прапорів, якщо біт доступний для запису, то я перевіряю наявність підтримки команди CPUID, якщо вона не підтримується, то процесорів 486-ий. Якщо ж CPUID підтримується, то далі все визначення лягає саме на цю команду.

    Наявність підтримки команди CPUID визначається доступністю для запису 21-го біта регістра прапорів.

    procedure TForm1.pcc2PrecizeProc (Sender : TObject); використовується для тестування швидкості виконання арифметичнихоперацій, а саме для обчислення часу складання 100 цілих чисел.

    procedure TForm1.pcc3PrecizeProc (Sender: TObject); використовується для обчислення часу складання 100 цілих 64-бітових чисел.

    procedure TForm1 . pcc4PrecizeProc (Sender: TObject); використовується для складання 100 дійсних чисел

    procedure TForm1.Button2Click (Sender: TObject); власне виконує 3 перерахованих вище процедури

    procedure TForm1.pcc5PrecizeProc (Sender: TObject); використовується для тестування швидкості системної шини

    procedure TForm1.Button3Click (Sender: TObject); при натисканні цієї кнопки процесор послідовно проводитьобчислення над 64-ма операціями NOP, розташованими в першому випадку впамчті, у другому-в кеші, і потім обчислює затримку на передачу команд зпам'яті.

    procedure TForm1.Button4Click (Sender: TObject); використовується для тестування швидкості виклику програми в оперативнупам'ять (викликається блокнот).

    procedure TForm1.pcc7PrecizeProc (Sender: TObject); тут тестується швидкість заповнення кеша

    procedure TForm1.pcc8PrecizeProc (Sender: TObject); з'ясовуємо кількість тактів, необхідних для виконання однієї операції
    NOP

    NOP - Порожня операція.

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

    ODITSZAPC

    -------- -------------------------------------------------- ------¬

    | Код Інструкція Такт Опис |

    | операції |

    +-------- T --- ------ T ----- T ----- T ----- T ------ T ------------------ - +

    | | | 486 | 386 | 286 | 86 | |

    +--------+---------+-- ---+-----+-----+------+-------------------+

    | 90 | NOP | 1 | 3 | 3 | 3 | Ні операції. |

    L -------- +---------+-----+-----+-----+---- --+--------------------

    Операція NOP не виконує ніякої операції. NOP - це одне-байтове інструкція, яка займає місце, але але не впливає на вміст машини (крім (E) IP).

    NOP - це псевдонім інструкції XCHG (E) AX, (E) AX.

    procedure TProcessorClockCounter.TestPrecizeProc; дана процедура поміщає невеликий код в кеш пам'ять

    procedure TProcessorClockCounter.TestPrecizeProcInCache; дана процедура тестує шматок коду, вже знаходиться в кеш-пам'яті procedure TDiadnostic.SpeedButton2Click (Sender : TObject);

    дана процедура висвічує повідомлення про те, що програматестування пам'яті завантажена в оперативну пам'ять.

    Тестуванню піддається пам'ять, розташована вище першого мегабайта, щоб уникнути проблем. Програма використовує три різновиди тестування: Та, що біжить Одиниця, що біжить Нуль,

    Шахова дошка. Перед тим як почати тестування, програма визначає обсяг пам'яті, встановленої в системі. Для цього в останні чотири байти, кожного мегабайта, записується число, потім воно читається і порівнюється. Якщо воно не збігається з записаним, значить цього і наступних мегабайт пам'яті не існує.

    Особливості застосовуваних тестів наступні. Тест "біжить

    Одиниця" або "Той, що біжить Нуль" полягає в тому, що в кожен байт пам'яті записується значення 0FFh або 0 відповідно, потім це значення порівнюється. Розбіжність говорить про помилку. У тесті "Шахівниця" у пам'ять записуються значення виду

    10101010b, потім вони зсуваються і порівнюються. Розбіжність - помилка.

    3.2. Керівництво користувачеві

    Програма функціонує за наступним принципом:

    При першому запуску програми з'являється вікно з пропозицією почекати,поки програма збере інформацію про систему.

    після цього з'являється головне вікно програми

    в ньому містяться такі закладки:

    1. Загальні - загальна інформація, тобто тип процесора, операційна система, версія ОС, ім'я користувача, організація.

    2. Диски - інформація про всіх дисках, встановлених в системі, таких як жорсткі диски, СД-РОМ, флоппі-диски, а також інформація про їх ємності, мітці

    тому, і файлової системи. < p> 3. Принтер - інформація про принтери, встановлених в системі

    4. пам'ять - інформація про системної пам'яті, про її кількості, інформація про файл підкачки.

    5. Клавіатура та миша - інформація про встановлених в системі клавіатурі і миші.

    6. Відео-інформація про відеокарту, дозвіл монітора, постачальника драйвера і т.д.

    7. інформація про процесор - вендор, частота

    8. шрифти - інформація про встановлених шрифти.

    9. Діагностика - тут зібрані такі властивості, як тестування процесора, пам'яті і перевірка лотка СД-рома, а також інформація про автора цієї маленької програми

    10. при натисненні на кнопку тестування процесора випадає наведені нижче вікно, де проводиться тестування процесора.

    тут, можна потестувати дуже багато параметрів. Перелічимо найбільш головні з них:

    -тактова частота - тут застосовується вбудований в мікропроцесор лічильник тактів, з якого ми отримуємо поточну тактову частоту

    -швидкість виконання аріфмеіческіх операцій - тут ми тестуємо, наскільки швидко процесор виконує основні арифметичні операції з різними типами даних

    -швидкість системної шини - тут ми перевіряємо швидкість шини між процесором і пам'яттю, тобто за скільки тактів передається інформація між ними. Використовується інструкції НОП, розташовані в першому випадку в оперативній пам'яті, а по Ввітріть випадку - в кеш-пам'яті.

    Наприкінці програма обчислює затримку пам'яті, тобто скільки тактів потрібно саме на передачу даних з/в пам'ять.

    -швидкість виклику додатків - тут тестуємо, за скільки тактів викликається в оператівнюу пам'ять стандартна програма Блокнот

    -швидкість заповнення кеша - тама ми заповнюємо всі 256 або 512 кілобайт кешу інструкціями, і дивимося, за скільки тактів він заповниться.

    Висновок

    Відомо, що випускна робота завершує підготовку бакалавра тапоказує готовність випускника вирішувати теоретичні та практичні завданняв умовах реальної трудової діяльності.

    Мета випускної роботи - систематизація та поглиблення теоретичних іпрактичних знань студента за фахом і можливості їх застосування вконкретних умовах практичної діяльності. Тому те, як студентвиконав випускну роботу, показує, як він підготовлений.

    У даній випускної роботи мною розглянута програма діагностики татестування комп'ютера, і в процесі її написання я більше добре зрозумівпризначення і принцип роботи основних пристроїв персонального комп'ютера.
    Вищезазначені знання, поза сумнівом, стануть в нагоді мені в подальшій моїйтрудової діяльності. Я дуже вдячний викладацькому складу нашоїкафедри за щеплену мені здатність вчитися, незважаючи на лінь і іншіобставини.

    Що стосується соціальної (суспільної цінності) даної роботи, то явпевнений, що для мене вона дуже значуща, тому що в процесі розробки янавчився терпимості по відношенню до програм і взагалі у мене вийшладуже хороша утилітка.

    Список використаної літератури


    1) С. Бобровський "DELPHI 5" Навчальний курс Москва 2000р.
    2) Довідник функцій WinAPI.
    Додаток 1 Лістинг програми

    // головний модуль

    unit Main;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
    Forms,
    Dialogs, StdCtrls, jpeg, ExtCtrls;

    type
    TForm11 = class (TForm)

    Image1: TImage;

    Timer1: TTimer;

    Label1: TLabel; procedure Timer1Timer (Sender: TObject); private

    (Private declarations) public

    (Public declarations) end;

    var
    Form11: TForm11;

    implementation

    uses Diag;

    ($ R *. dfm)

    procedure TForm11.Timer1Timer (Sender: TObject);begin diadnostic.show; timer1.Enabled: = false;end;

    end.
    //Власне модуль діагностики

    unit Diag;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, ComCtrls, Registry, Printers, ExtCtrls, AxCtrls, OleCtrls, vcf1,
    Tabs, Winspool,

    FileCtrl, ImgList, Menus, winsock, ScktComp, Systeminfo, mmsystem,
    Buttons, shellapi;type
    TDiadnostic = class (TForm)

    SysInfo1: TSysInfo;

    Timer1: TTimer;

    Button1: TButton;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    GroupBox3: TGroupBox;

    About: TButton; procedure AboutClick (Sender: TObject); procedure FormCreate (Sender: TObject); procedure aClick (Sender: TObject); procedure disknameClick (Sender: TObject); procedure Button4Click (Sender: TObject); procedure disknameChange (Sender: TObject); procedure ListBox1DrawItem (Control: TWinControl; Index: Integer;

    Rect: TRect; State: TOwnerDrawState); procedure ListBox1MeasureItem (Control: TWinControl; Index: Integer; var Height: Integer); procedure ListBox1Click (Sender: TObject); procedure FormClose (Sender: TObject; var Action: TCloseAction); procedure Timer1Timer (Sender: TObject); procedure Button1Click (Sender: TObject); procedure SpeedButton1Click (Sender: TObject); procedure SpeedButton2Click (Sender: TObject); private

    (Private declarations) public < p> (Public declarations) end;var
    Diadnostic: TDiadnostic;

    implementation

    uses tlhelp32, about, example;
    ($ R *. DFM)

    function GetRootDir: string; external 'Ulandll.dll' index 1;

    function getboottype: string; external 'UlanDll.dll';// index 31;

    procedure TDiadnostic.AboutClick (Sender: TObject);beginform2.show;end;

    procedure GetPrName (processor1: Tlabel);var SI: TsystemInfo;begin
    GetSystemInfo (SI);
    Case SI.dwProcessorType of
    386: Processor1.caption: = '386 ';
    486: Processor1.caption: = '486 ';
    586: Processor1.caption: = '586 ';
    686: Processor1.caption: = '686 ';end;end;

    procedure GetRegInfoWinNT;var
    Registryv: TRegistry;
    RegPath: string; sl, sll: TStrings;begin

    RegPath: = 'HARDWAREDESCRIPTIONSystem'; registryv: = tregistry.Create; registryv.rootkey: = HKEY_LOCAL_MACHINE; sl: = nil; try registryv.Openkey (RegPath, false); diadnostic.Label28.Caption: = (RegistryV.ReadString ( 'SystemBiosDate')); sl: = ReadMultirowKey (RegistryV, 'SystemBiosVersion'); diadnostic.memo1.Text: = sl.Text; except end;
    Registryv.Free; if Assigned (sl) then sl.Free;end;

    function GetDisplayDevice: string;var lpDisplayDevice: TDisplayDevice;begin lpDisplayDevice.cb: = sizeof (lpDisplayDevice);
    EnumDisplayDevices (nil, 0, lpDisplayDevice, 0);
    Result: = lpDisplayDevice.DeviceString;end;procedure getinfovideo;var lpDisplayDevice: TDisplayDevice; dwFlags: DWORD; cc: DWORD;begindiadnostic.memo2.Clear;lpDisplayDevice.cb: = sizeof (lpDisplayDevice);dwFlags: = 0;cc: = 0;while EnumDisplayDevices (nil, cc, lpDisplayDevice, dwFlags) do begin

    Inc (cc); diadnostic.memo2.lines.add (lpDisplayDevice.DeviceString);

    (Так само ми побачимо додаткову інформацію в lpDisplayDevice) end;end;function LocalIP: string;type

    TaPInAddr = array [0 .. 10] of PInAddr;

    PaPInAddr = ^ TaPInAddr;var phe: PHostEnt; pptr: PaPInAddr;

    Buffer: array [0 .. 63] of char;

    I: Integer;

    GInitData: TWSADATA;

    begin

    WSAStartup ($ 101, GInitData);

    Result: ='';

    GetHostName (Buffer, SizeOf (Buffer) ); phe: = GetHostByName (buffer); if phe = nil then Exit; pptr: = PaPInAddr (Phe ^. h_addr_list);

    I: = 0; while pptr ^ [I] nil do begin result : = StrPas (inet_ntoa (pptr ^ [I ]^));

    Inc (I); end;

    WSACleanup;end;

    Function GetCPUSpeed: Double;const
    DelayTime = 500;var
    TimerHi: DWORD;
    TimerLo: DWORD;
    PriorityClass: Integer;
    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// rdtsc mov TimerLo, eax mov TimerHi, edx end;
    Sleep (DelayTime); asm dw 310Fh// rdtsc sub eax, TimerLo sbb edx, TimerHi mov TimerLo, eax mov TimerHi, edx end; < br> SetThreadPriority (GetCurrentThread, Priority);
    SetPriorityClass (GetCurrentProcess, PriorityClass);
    Result: = TimerLo/(1000.0 * DelayTime);end; function CheckDriveType (ch: char): String;var
    DriveLetter: Char;
    DriveType: UInt;begin
    DriveLetter: = Ch;
    DriveType: = GetDriveType (PChar (DriveLetter +':'));< br> Case DriveType Of
    0: Result: ='?';< br> 1: Result: = 'Path does not exists';
    Drive_Removable: Result: = 'Removable';
    Drive_Fixed: Result: = 'Fixed';
    Drive_Remote: Result: = 'Remote';
    Drive_CDROM : Result: = 'CD-ROM';
    Drive_RamDisk: Result: = 'RAMDisk' else
    Result: = 'Unknown'; end;end;function GettingHWProfileName: String;var pInfo: TagHW_PROFILE_INFOA;begin
    GetCurrentHwProfile (pInfo);
    Result: = pInfo.szHwProfileName;end;procedure TDiadnostic.FormCreate (Sender: TObject);var OsVerInfo: Tosversioninfo; winver, build: string;

    Disks: byte; buffer: array [0 .. 255] of char; wd: string; sp: array [0 .. max_path-1] of char; s: string; memorystatus: tmemorystatus; dwLength: DWORD;// sizeof (MEMORYSTATUS) dwMemoryLoad: DWORD;// percent of mem

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status