Мини-Эверест: Native ВК для 8.х







Список и свойства HDD, список и свойства ОЗУ, список запущенных процессов (для терминала — всех пользователей с указанием номера сессии), список запущенных сервисов, характеристики BIOS

ВК выполнена по технологии Native, т.е. не требует особых прав и регистрации в реестре.

Пример загрузки ВК:

Перем Инфо Экспорт;
Функция КаталогИБ() Экспорт
КаталогИБ = СтрокаСоединенияИнформационнойБазы();
КаталогИБ = Сред(КаталогИБ,7,СтрДлина(КаталогИБ)-8) + "";
Возврат КаталогИБ;
КонецФункции


Процедура ПриНачалеРаботыСистемы()
ПутьDLL=КаталогИБ()+"NativeCompInfo.dll";
Файл=Новый Файл(ПутьDLL);
Если Не Файл.Существует() Тогда
Сообщить("Не обнаружен файл ""NativeCompInfo"", библиотека не загружена",СтатусСообщения.Внимание);
Возврат;
КонецЕсли;
//--- подключение компоненты--------
ПодключитьВнешнююКомпоненту(ПутьDLL,"NativeCompInfo",AddInType.Native);
//--- создание объекта класса------
Инфо = Новый("AddIn.NativeCompInfo.CompInfo");
КонецПроцедуры

Методы:
Диски() — возвращает многострочную строку жестких дисков.
Каждая строка имеет вид: Имя;Интерфейс;Модель;ЧислоРазделов;Объем(ГБ)
Процессоры() — возвращает многострочную строку процессоров.
Каждая строка имеет вид: Имя;Идентификатор;ЧастотаВнешнегоГенератора;ЧислоЯдер;ЧилоЛогическихПроцессоров
ОЗУ() — возвращает многострочную строку планок памяти. 
Каждая строка имеет вид: Идентификатор;СерийныйНомер;Разрядность;Частота;Объем
Процессы() — возвращает многострочную строку запущенных процессов (на терминале — всех пользователей).
Каждая строка имеет вид: Имя;Идентификатор(Handle);ИдентификаторТерминальнойСессии;ДатаСозданияПроцесса;ЗанимаемаяПамять(МБ)
Сервисы()— возвращает многострочную строку установленных сервисов
Каждая строка имеет вид: ОтображаемоеИмя;Идентификатор(Handle);Состояние;Статус
Пользователи() — возвращает многострочную строку зарегистрированных пользователей
Каждая строка имеет вид: Имя;Домен;SID(уникальный идентификатор пользователя);Статус
БИОС() — возвращает строку информации о BIOS примерно такого вида: BIOS Date: 09/30/09 12:52:30 Ver: 08.00.10 [Intel Corp.]
УбитьПроцесс(PID), где PID — число, идентификатор (handle) процесса

Примечание 1: разделитель во всех строках — точка с запятой
Примечание 2: в архиве файл 1CV8.1CD тестовой базы и файл ВК NativeCompInfo.dll. Пароль на архив: 123
Примечание 3: тестовые обработки включены в состав конфигурации (Операции-Обработка…)
Примечание 4: тестировалось на Windows XP, Windows Server 2008, Windows Server 2003

Версия 1.0.0.11
Добавлены методы:
ПолнаяИнформация(ИмяФайлаДляСохранения) — формирует текстовый файл с полной (расширенной) информации о компьютере:
BIOS, ОС, HDD, память, принтеры,сервисы, пользователи
УстановитьТаймер(Интервал) — устанавливает таймер с указанным интервалом в мс.
Таймер генерирует внешнее событие «TIMER_ON_TIMER», источник «NATIVE_COMP_INF»
Свойство таймера:
ИнтервалТаймера — считывает/устанавливает интервал таймера.
Пример: Сообщить(Инфо.ИнтервалТаймера); Инфо.ИнтервалТаймера=5000;
Установка ИнтервалТаймера=0 останавливает таймер
ПроцессыБезОтбора() — выводит все запущенные процессы с указанием % загрузки CPU и времени простоя процесса в наносекундах
ПроцессыПоПростою(ВремяПростоя) — выводит запущенные процессы для времени простоя процесса в нс>ВремяПростоя
ПроцессыПоЗагрузке() — выводит запущенные процессы, у которых % использование CPU>0
Примечание: три последних метода не возвращают значение напрямую (т.к. запускается таймер для расчета времен), а генерируют внешнее
событие «CPU_USE_IDLE» (см. встроенную обработку «CPU_USE»)

7 Comments

  1. Abadonna

    (1) script, сейчас кое-что дописываю, посмотрю насчет времени простоя

    Reply
  2. script

    А можно добавить перехват события простоя процесса больше n-сек? n-сек — передавать параметром?

    Reply
  3. Abadonna

    (3) SITR-utyos,

    но сейчас уже есть публикации, позволяющие все это сделать в 1С с помощью WMI

    Так я ж не спорю;) Публикации не просматривал, а это делал для себя, причем даже не для 1С. Просто впихнул готовый кусок кода в ВК.

    Reply
  4. SITR-utyos

    Идея хорошая, но сейчас уже есть публикации, позволяющие все это сделать в 1С с помощью WMI

    Reply
  5. Abadonna

    (5) BoryaMbi, шаблоны ВК на С++ на ИТС, шаблон на Delphi вот тут: http://infostart.ru/public/81644/

    А дальше WinAPI и с песней вперед 😉

    Reply
  6. BoryaMbi

    А как создавалась компонента?

    Исходники для ВК?

    Интересно именно самостоятельное создание ВК.

    Спасибо.

    Reply
  7. ndacoder

    при попытке подключить компоненту выпадает ошибка платформы

    «не корректная работа компоненты с памятью»

    платформа 8.3.14

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *