MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Замер степени использования процессора

Название:Замер степени использования процессора
Просмотров:61
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание:В Windows 9x существуют счётчики Performance Counters, которые можно включить из реестра, и в реестр же они будут посылать результаты замеров. Например загруженности процессора.

Часть полного текста документа:

Замер степени использования процессора
    Недавно в статье, посвящённой недокументированным возможностям Windows, я обнаружил интересный способ измерения степени использования процессора. Дело в том, что в Windows 9x существуют счётчики Performance Counters, которые можно включить из реестра, и в реестр же они будут посылать результаты замеров. Например загруженности процессора. Есть они и в NT, но доступ к ним сложнее.
    К моему собственному удивлению результат перевода С на человеческий VB отлично заработал! По-сему, если Вашей программе нужно знать загруженность проца, или если Вы заинтересуетесь доступом в реестр из WinApi32, то Вы можете познакомиться с простеньким примером. Разумеется в полном варианте нужно было бы вставить проверку типа Windows (например через GetWindowsVersion), сворачивание в SysTray и т.п., но в "укороченном" виде Вам будет проще приспособить данную фичу Windows к своим потребностям.
    Итак. Если у Вас не NT. Расположите на форме кнопочку. Назовём её cmdStart. Как водится, в раздел General Declarations вставляем:
    Открыть нужный ключ:
    Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" ( _
    ByVal hkey As Long, _
    ByVal pSubKey As String, _
    ByVal ulOptions As Long, _
    ByVal samDesired As Long, _
    phkResult As Long) As Long
    hkey, lpSubKey - пути к ключу,
    ulOptions - зарезервировано: должно быть ноль,
    samDesired - тип доступа: комбинация предопределённых констант,
    phkResult - переменная, получающая хэндл нужного ключа. Не забудьте потом закрыть.
    Получить тип и значение параметра из ранее открытого ключа:
    Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
    ByVal hkey As Long, _
    ByVal lpValueName As String, _
    ByVal lpReserved As Long, _
    lpType As Long, _
    lpData As Any, _
    lpcbData As Long) As Long
    hkey - хэндл открытого ранее ключа,
    lpValueName - имя параметра, который нужно прочитать,
    lpReserved - зарезервировано: должно быть ноль,
    lpType - переменная, в которую будет возвращаться тип параметра
    можно передать ноль, если тип не требуется (нам, кстати, передаст 3 - REG_BINARY),
    lpData - то, что нас интересует,
    lpcbData - переменная, которая содержит длину буфера под lpData,
    после выполнения будет содержать кол-во в действительности переданных байт
    у нас - длина слова: 4. Если переменную заменить просто на 4 - тоже работает
    Закрытие ранее открытого ключа:
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long
    Некоторые константы из API Viewer:
    Private Const HKEY_DYN_DATA = &H80000006
    Private Const STANDARD_RIGHTS_ALL = &H1F0000
    Private Const READ_CONTROL = &H20000
    Private Const STANDARD_RIGHTS_READ = (READ_CONTROL)
    Private Const KEY_QUERY_VALUE = &H1
    Private Const KEY_SET_VALUE = &H2
    Private Const KEY_CREATE_SUB_KEY = &H4
    Private Const KEY_ENUMERATE_SUB_KEYS = &H8
    Private Const KEY_NOTIFY = &H10
    Private Const KEY_CREATE_LINK = &H20
    Private Const SYNCHRONIZE = &H100000
    
    Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL OR _
    KEY_QUERY_VALUE OR KEY_SET_VALUE OR _
    KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or _
    KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
    Private Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
    KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or _
    KEY_NOTIFY) And (Not SYNCHRONIZE))
    Для служебных нужд:
    Самый ресурсощедящий способ выждать паузу (в миллисекундах):
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Всегда пригодится:
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
    ByVal hWndInsertAfter As Long, _
    ByVal x As Long, _
    ByVal y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal WFlags As Long) As Long
    А это наше:
    Dim hkey As Long
    Dim dwCPUUsage As Long
    Dim lpcbData As Longпо-моему действительно лучше выкинуть,
    подставив в нужных местах 4. ............






Похожие работы:

Название:Private banking в России
Просмотров:332
Описание: PRIVATE BANKING В РОССИИ Перевод понятия "private banking" достаточно прост: "индивидуальное обслуживание банком состоятельных частных лиц". Однако в обиходе российские банки, предоставляющие данный вид услуг с

Название:Private sector and human-resource development in Georgia
Просмотров:295
Описание: TBILISI, GEORGIA             Private Sector and Human-resource Development in Georgia Author: Lasha Martashvili E-mail: lmg@bk.ru    (18.02.2004)             TABLE OF CONTENTS 1.      Government Policies. 5 1.1        Governmen

Название:Private label
Просмотров:349
Описание:Private label- что это такое? Потребитель и Private Label. Мировая практика. Производители. Условия успеха.

Название:Private label: золотое дно?
Просмотров:338
Описание:Private label - Что это такое ? Потребитель и Private Label. Мировая практика. В России. Производители.

 
     

Вечно с вами © MaterStudiorum.ru