Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/33: Рейтинг темы: голосов - 33, средняя оценка - 4.76
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634

Монитор Ресурсов

26.02.2019, 18:03. Показов 7032. Ответов 58
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Будучи счастливым обладателем небольшого сервера задался вопросом, а что же грузит сервер ночью. Вашему вниманию программа монитор ресурсов: Изначально ReS_MoN задумывалась как программа, которая будет информировать о процессах, которые избыточно потребляют ресурсы на сервере. С возможностью отправки уведомлений на различные сервисы.


Возможности:
1. Отправка отчетов на почту при превышения порогов потребления ресурсов;
2. Отправка отчетов на FTP при превышения порогов потребления ресурсов;;
3. Куча всего другого;
3. Поддержка оси Win 7/8/8.1/10 (для трех последних нужна права админа);
4. Авто обновление, отправка статистики на почту (FTP);
5. Логи, Ини и тд.

Проект не закончен. Руки не доходят дописать для MEM и HDD. Если кто то желаем помочь, пожалуйста исходники в комплекте..На сегодня работает довольно таки стабильно.

Отдельная благодарность за помощь Dragokas
Миниатюры
Монитор Ресурсов   Монитор Ресурсов  
Вложения
Тип файла: 7z pack_Source.7z (93.4 Кб, 12 просмотров)
Тип файла: 7z pack_Bin.7z (1.87 Мб, 15 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2019, 18:03
Ответы с готовыми решениями:

Графический монитор ресурсов
Здравствуйте, господа. Скажите, а как реализовать в своей программе мониторинг загрузки ЦП в виде графика?

поделитесь мыслями (монитор ресурсов)
Получил задание по курсовой написать программу монитор основных параметров системы. к примеру темп.проца и т.д Размещается в трее как...

Поделитесь мыслями (монитор ресурсов)
Получил задание по курсовой написать программу монитор основных параметров системы. к примеру темп.проца и т.д Размещается в трее как...

58
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
06.02.2020, 06:23  [ТС]
Студворк — интернет-сервис помощи студентам
Добрый день!
Замечательно, выручите...
0
10.02.2020, 08:18

Не по теме:

The trick, Вы профессиональный программист или любитель?

0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
11.02.2020, 09:35

Не по теме:

IDK, любитель, а что?



По теме, я сделал исправление, но там возникает ошибка еще не разобрался в чем причина.
1
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
11.02.2020, 17:05  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Да, он только под 32 бита рассчитан. ProcessExplorer в свою очередь в ресурсах содержит 64 битную версию, которая извлекается и запускается в случае запуска на 64 битной системе.
Я знаю способ исправить, на днях исправлю.
По прежнему ждем...
0
12.02.2020, 08:34

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
IDK, любитель, а что?
Праздный интерес, не произошел ли переход. Деловых предложений на данный момент нет.

0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.02.2020, 02:13
Лучший ответ Сообщение было отмечено kreotodr как решение

Решение

Если что, здесь пример чтения памяти 64-битных процессов: https://github.com/dragokas/hi... .bas#L1419
1
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
15.02.2020, 08:17  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Если что, здесь пример чтения памяти 64-битных процессов: https://github.com/dragokas/hi... .bas#L1419
Спасибо!
Если не трудно выложи проект сюда...
И второй вопрос, подобное решение с загрузкой CPU процессами для 64битных систем у Вас есть?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.02.2020, 10:15
Проект открыт и доступен для скачивания без регистрации, зеленая кнопка Download: https://github.com/dragokas/hijackthis

Для расчета нагрузки на CPU, если список процессов составлять функцией NtQuerySystemInformation с параметром SystemProcessInformation (есть в проекте выше), то нету необходимости открывать процесс, просто читайте поля SYSTEM_PROCESS_INFORMATION -> UserTime и KernelTime и вычисляйте по этой формуле: GetCPUUsage.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
15.02.2020, 12:54
Цитата Сообщение от The trick Посмотреть сообщение
По теме, я сделал исправление, но там возникает ошибка еще не разобрался в чем причина.
Ошибку удалось победить, но причина неясна. Либо это баг в ОС, либо баг в архитектуре процессора, по крайней мере мне не удалось выяснить причину. Крастко, при переключении в Long-Mode и обратно необходимо перезагружать сегментный регистр SS. Обсуждение можно почитать на васме.

В своем коде я решил не изменять принцип работы - я также получаю через счетчики как это делает GetProcessMemoryInfo через NtQueryInformationProcess c параметром ProcessVmCounters только для 64 битного режима вызывается 64-битная функция NtQueryInformationProcess посредством переключения в 64 битный режим из VB кода. Эта функция совместима с 64-битными приложениями поскольку мы не имеем прослойки WoW64.

Я добавил удобный модуль для работы с 64-битной ntdll. Можно вызывать большинство функций из нее посредством функции CallX64. Стоит отметить что все указатели в 64 битном режиме 64 битные, поэтому их стоит передавать как Currency если кто-то захочет работать с другими 64-битными приложениями через нее. Если работа идет с 32-битными то можно передавать обычные указатели, т.к. они автоматически расширяются до 64-бит с занулением старшей части.

GetModuleHandle64 позволяет получить хендл 64 битной библиотеки в текущем процессе по имени.

GetProcAddress64 позволяет получить адрес функций из 64-битной DLL в текущем процессе (функционал неполный т.к. она не поддерживает редиректы, но я не могу представить ситуацию когда это может пригодится в таком режиме работы). Я не проверял, но я думаю можно даже загрузить внешние 64 битные DLL в текущий процесс, но они должны обращаться только к Native API.

Код обновил в блоге. Там добавил еще сортировку.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.02.2020, 13:48
Респектище за x64 трамплин. Пригодится и еще как! Можно сказать гигантский рывок для VB6.

P.S. Странно, не могу откомментировать в блоге, тупо зависает запрос.
0
15.02.2020, 14:01

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
P.S. Странно, не могу откомментировать в блоге, тупо зависает запрос.
Последнее время форум часто подлагивать стал.

0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
15.02.2020, 19:19  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Код обновил в блоге. Там добавил еще сортировку.
И снова, что то не так....
На Win10 пустые поля
Миниатюры
Монитор Ресурсов  
0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
15.02.2020, 19:25  [ТС]
Пробовал на Win 2012 Server R2 все ок.
Под Win 10 пробовал запускать со среды/компиляция в P-Code. Увы пустые поля.
0
63 / 48 / 12
Регистрация: 28.12.2014
Сообщений: 270
16.02.2020, 04:48
Цитата Сообщение от The trick Посмотреть сообщение
Код обновил в блоге.
Что за блог? На данном форуме не вижу новых записей в блоге.
0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
16.02.2020, 05:31  [ТС]
Цитата Сообщение от IDK Посмотреть сообщение
Что за блог? На данном форуме не вижу новых записей в блоге.

https://www.cyberforum.ru/blog... g2134.html
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
16.02.2020, 10:30
kreotodr, посмотрю
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
16.02.2020, 12:10
Лучший ответ Сообщение было отмечено kreotodr как решение

Решение

Посмотрел. Причина была в WOW64 слое который в Win10 рассматривает хендлы как беззнаковые при конвертации из 32 в 64 бит. Поэтому команды NtWow64ReadVirtualMemory выдавали ошибку т.к. -1 преобразовывался в 4294967295 вместо -1. Win7:

Win10:

Проект выложил не гитхабе для удобного обновления.
3
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
16.02.2020, 14:30  [ТС]
спасибо
0
63 / 48 / 12
Регистрация: 28.12.2014
Сообщений: 270
19.02.2020, 16:38
The trick,
NtWow64QueryInformationProcess64, NtWow64ReadVirtualMemory – недокументированные функции, т.е. описания нет?

NtWow64QueryInformationProcess64 при хэндле процесса = -1 возвращает указатель на PEB64 копии процесса в 64-битном режиме? Для копии загружаются 64-битные экземпляры dll оригинального проекта?

Указатель, полученный из 64-битной копии процесса имеет значение в пределах wow? Или wow распознает адресное пространство, к которому принадлежит указатель?
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
19.02.2020, 22:57
Цитата Сообщение от IDK Посмотреть сообщение
NtWow64QueryInformationProcess64, NtWow64ReadVirtualMemory – недокументированные функции, т.е. описания нет?
Да, недокументированные.

Цитата Сообщение от IDK Посмотреть сообщение
NtWow64QueryInformationProcess64 при хэндле процесса = -1 возвращает указатель на PEB64 копии процесса в 64-битном режиме? Для копии загружаются 64-битные экземпляры dll оригинального проекта?
У 32 битного процесса в 64 битном окружении 2 версии ntdll. Одна 32 битная, другая 64 битная. Помимо ntdll там еще библиотеки WoW64 слоя. Т.к. 32 битный процесс по сути является таким же 64 битным процессом, то у него также есть 64 битные TEB и PEB.

Цитата Сообщение от IDK Посмотреть сообщение
Указатель, полученный из 64-битной копии процесса имеет значение в пределах wow? Или wow распознает адресное пространство, к которому принадлежит указатель?
Адресное пространство 64-битное, в том числе у 32 битного процесса. К примеру на Win8 64 битная ntdll загружается далеко за пределами 4ГБ, поэтому просто так в 32 битном режиме ее не прочитать. Можно даже к примеру выделить память за пределами 4ГБ и там хранить данные, либо попробовать выделить > 4ГБ на 32 битный процесс (не проверял, т.к. там может лимит стоять).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2020, 22:57
Помогаю со студенческими работами здесь

Монитор ресурсов показывает 100% максимальной частоты ЦП.
Всем огромный респектище и добрый день У меня есть проблема, и ее решение я не смог найти. Проблема заключается в том, что по какой-то...

Показывает ли Монитор ресурсов адекватное распределение памяти и загрузку ЦП
Показывает ли Монитор ресурсов(ДиспетчерЗадач\Быстродействие) адекватное - распределение памяти и загрузку ЦП? или лучше оставить ДЗ для...

Какой код нужен что-бы открыть монитор ресурсов в .bat файле
Какая команда нужна чтобы открыть монитор ресурсов? (нужен для моего меню) Буду рад.

Монитор ресурсов resmon.exe показывает малое, но бесконечное использование System жёсткого диска
Монитор ресурсов resmon.exe показывает малое, но бесконечное использование System жёсткого диска Что разрушает жёсткий диск. ...

При включении ноутбука гаснет монитор. Но работает монитор в безопасном режиме
Здравствуйте. Столкнулся с такой проблемой на ноутбуке ASUS X750L. Монитор при включении ноутбука гаснет и начинает мигать, сам ноутбук...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru