Для Open Hardware Monitor необходимо зайти в меню настроек гаджета и прописать названия процессора, чипа, видеокарты, а также названия датчиков температуры материнской платы и северного моста из OHM в соответствующие поля настроек:
Настройка Open Hardware MonitorПосле ввода каждого параметра необходимо нажать кнопку Set. В этом же меню настроек необходимо ввести все пути к приложениям. По умолчанию стоят стандартные пути расположения для Windows 7 64, если у вас расположения программ мониторинга отличаются -пути необходимо скорректировать. Тут же, в меню настроек можно изменить шрифт, его цвет и стиль, цвет индикаторов и прозрачность панели.
Теперь немного о глюках. При первом запуске OHM у вас скорее всего вылезет с десяток окон Rainmeter о несуществующих датчиках - в этом случае окна надо закрыть и провести настройку OHM как описано выше. Это издержки бэта версии плагина и я их пока самостоятельно исправить не могу. Кроме того плагин OHM приводит к вываливанию Rainmeter на виртуальных машинах... Желающие скорректировать плагин могут почитать о нем и скачать исходники
тут. Необходимо чтобы в случае отсутствия датчика он возвращал 0, а не вызывал ошибку.
Как это все работает ?
Ну а теперь более подробно о нюансах реализации скинов - ведь материал писался не только для описание моих гаджетов, но и для ознакомления читателя с азами написанием скинов в Rainmeter - возможно кто то захочет что то изменить "под себя", или добавить упущенный мной функционал. Ниже приведено несколько примеров с комментариями...
Как писалось выше скин (гаджет) в rainmeter - это ini файл с описанием датчиков и индикаторов. В начале файла находится несколько секций с описаниями:
[Rainmeter]
Update=1000 ; частота обновления датчиков и индикаторов в миллисекундах
Author=alex1974 aka lexover ; автор
AppVersion=0.3 ; версия
[Metadata]
Name= OverClock ; название скина
Config=
Description=Док для программ мониторинга.
Instructions=
Version= 0.3
Tags=
License=
Variant=
Preview=
[Variables] ; описание переменных
@include=/configure/Var.inc ; присоеденяем файл Var.inc. В Файле могут содержаться датчики, индикаторы, переменные.
UNAME=[MeasureUserName] ; объявлена переменная UNAME и ей присвоено значение датчика MeasureUserName.
...
Далее идет описание датчиков и индикаторов. Датчик может получать данные посредством обращений к реестру, к плагинам, к встроенным средствам rainmeter, с помощью вычисления значений формул из других датчиков. Например:
...
[MeasureRAM] ;описание датчика Measure ram
Measure=PhysicalMemory ; получаем данные из среды Rainmeter.
...
[MeasureVersion] ; датчик возвращает версию ОС полученную из реестра
Measure=Registry ; получаем данные из реестра
RegHKey=HKEY_LOCAL_MACHINE ; раздел
RegKey=SOFTWARE\Microsoft\Windows NT\CurrentVersion ; ветка раздела
RegValue=ProductName ; возвращаемый параметр, всегда текстовая строка.
...
[MeasureBits] ; датчик возвращает разрядность ОС полученную из стандартного плагина SysInfo.
Measure=Plugin
Plugin=Plugins\SysInfo.dll ; получаем данные из стандартного плагина rainmeter - sysinfo
SysInfoType=OS_BITS ; тип запрашиваемых данных плагина SysInfo.
...
[MeasureCore1Temp] ;датчик возвращает температуру первого ядра полученную из встроенного плагина Core Temp
Measure=Plugin
Plugin=Plugins\CoreTemp.dll ; получаем данные из стандартного плагина rainmeter - CoreTemp
CoreTempType=Temperature ; тип запрашиваемых данных - температуры
CoreTempIndex=0 ; номер температурного датчика.
[MeasureCore1MaxTemp] ; датчик вычисляет максимальную температуру
Measure=Calc ; тип датчика - формула
Formula=(MeasureCore1Temp > MeasureCore1MaxTemp) ? MeasureCore1Temp : MeasureCore1MaxTemp ; формула получения максимальной температуры - если MeasureCore1Temp больше MeasureCore1MaxTemp, то возвращается значение MeasureCore1Temp иначе MeasureCore1MaxTemp Для вывода значений датчиков на экран существуют индикаторы. Индикатором считается любой видимый элемент на экране - изображение, текст, кнопка, etc. Для каждого индикатора можно задать действие производимое при наведении нажатии и отпускании мыши. Примеры:
...
[MeterBG] ; описание BackGraund image
Meter=IMAGE ; тип индикатора - изображение.
X=0 ; координата х в рабочей области скина.
Y=0 ; координата y в рабочей области скина.
ImageName=Sidebar.png ; путь к изображению. Если путь не указан изображение будет загружено из текущей папки скина.
ImageAlpha=100 ; прозрачность
...
[MeterHours] ; выводит на экран часы
MeasureName=MeasureHours ; источник данных - датчик [MeasureHours]
Meter=STRING ; тип индикатора - строка
X=33 ; координата х в рабочей области скина.
Y=32 ; координата y в рабочей области скина.
FontColor=255, 255, 255, 150 ; цвет шрифта
FontSize=20 ; размер шрифта
FontFace=#FONTNAME# ; название шрифта
StringAlign=LEFT ; выравнивание
StringStyle=#FONTSTYLES# ; стиль шрифта (bold, italic)
AntiAlias=1 ; сглаживание включено
...
[MeterCPU] ; индикатор общей загрузки процессора в %
MeasureName=MeasureCPU ; источник данных - датчик [MeasureCPU]
Meter=STRING ; тип индикатора - строка
X=3 ; координата х в рабочей области скина.
Y=100 ; координата y в рабочей области скина.
FontFace=#FONTNAME# ;название шрифта
FontSize=8 ; размер шрифта
FontColor=#FONTCOLOR# ; цвет шрифта
Text="CPU usage: %1%" ; текст выводимый на экран, %1 будет заменено на значение датчика [MeasureCPU]
StringAlign=left
StringStyle=#FONTSTYLES# ; стиль шрифта (bold, italic)
AntiAlias=1 ; сглаживание включено
...
[meterBarCPU] ; верхний индикатор общей загрузки процессора в вертикальном варианте скина.
Meter=BAR ; тип индикатора
MeasureName=MeasureCPU ; источник данных - датчик [MeasureCPU]
X=5 ; координата х в рабочей области скина.
Y=12r ; координата y в рабочей области скина.
W=123 ; длина
H=2 ; высота
BarColor=#BARCOLOR# ; цвет индикатора
BarOrientation=HORIZONTAL ; ориентация горизонтальная
SolidColor=255,255,255,30 ; цвет фона
...
Теперь немного о реализации кнопок вызова приложений. В первую очередь остановимся на изображении кнопки - это файл jpg или png содержащий три изображения - в неактивном состоянии, при наведении и при нажатии. Выглядит это так:
[MeterLinx] ; индикатор - кнопка запуска Linx
Meter=Button ; тип индикатора - кнопка
X=137 ; координата х в рабочей области скина.
Y=88 ; координата y в рабочей области скина.
ButtonImage=#CURRENTPATH#linx.png ; изображение кнопки в рабочей папке скина
LeftMouseUpAction=!Execute ["#CURRENTPATH#Run.exe" "#LINX_PATH#"] ; Run.exe (скомпилированный скрипт AutoIt)- команда исполняемая при нажатии на кнопку, с параметром #LINX_PATH# (Путь к LinX). В принципе linx можно запустить и на прямую - !Execute ["#LINX_PATH#"], но тогда при нажатии на кнопку будет запускаться новая копия LinX. Команда Run.exe в случае если LinX запущен просто выведет окно на экран если он свернут или свернет если окно активно, либо запустит - если LinX не запущен.
[MeterScreenshot] ; кнопка снятия скриншота
Meter=Button ; тип индикатора - кнопка
X=137 ; координата х в рабочей области скина.
Y=30r ; координата y относительно позиции последнего индикатора.
ButtonImage=#CURRENTPATH#sc.png
LeftMouseUpAction=!Execute ["#CURRENTPATH#nircmd.exe" "savescreenshotfull" "C:\Users\#UNAME#\Desktop\scr~$currdate.MM_dd_yyyy$-~$currtime.HH_mm_ss$.png"] ; nircmd - утилита для снятия скриншота рабочего стола, подробнее читайте тут. Скриншот сохраняется на рабочий стол. Надеюсь прокомментированный выше код скина дает некоторое представление о принципах построения гаджетов в Rainmeter и поможет всем желающим скорректировать мои гаджеты под себя. Конечно пояснения выше далеко не исчерпывающие и дают только общее представление о скинах в Rainmeter. Более подробно о синтаксисе скинов в Rainmeter можно прочесть
тут. Несколько слов о меню настроек. Оно реализовано через скрипт AutoIt, не компилированный скрипт лежит в папке config директории скина.
Послесловие
Данный гаджет не является законченным продуктом, скорее это мой взгляд на то как должны отображаться данные мониторинга системы на экране. Ведь гораздо удобнее когда все данные видны на рабочем столе и для их просмотра не нужно никуда заходить. Теперь я запускаю AIDA64 в свернутом виде - все необходимое от нее видно в гаджете, и нет необходимости в том чтобы заходить в подразделы. Каждый желающий может изменить гаджет в соответствии со своими вкусами, полностью сменить оформление и т.п. Текущее графическое оформление было сделано на скорую руку поэтому не судите строго, просто в статье я хотел привлечь внимание к Rainmeter, уж очень он гибко настраивается. Возможно кому то из местных программистов идея покажется интересной и он реализует самостоятельный гаджет с захватом инфы от популярных программ мониторинга. Ну или хотя бы пару плагинов для Rainmeter напишет
Rainmeter 2.2. r1008 beta - последняя версия Rainmeter, русифицированная.
Overclock it!!!.rmskin - собственно мой гаджет.
Open Hardware Monitor 0.3.2. beta Небольшая
коллекция тем для Rainmeter - Rain2, Pog, MassEffect2, gnometer, Enigma 3.1, Cobolt 2.2., ABP1.2... Для ознакомления и понимания что можно сделать в среде Rainmeter. Ниже несколько скриншотов тем для Rainmeter: