当前位置:文档之家› rainmeter皮肤编写(进阶篇)

rainmeter皮肤编写(进阶篇)

第一节制作流程开头部分Rainmeter有两项必需写的Author=作者Update=皮肤的刷新率,1000=1秒,默认=1000.其他的根据需要写,比如AppVersion指定所需的RM版本,BackgroundMode定义背景模式等等。

这里,对MouseActionCursor这个很多人还不清楚的做下讲解。

如果你后面的Meter定义成Button按钮,并且该按钮带有鼠标活动(好比开始菜单球球,鼠标有滑入按下离开三种行为),可以在开头部分将MouseActionCursor=0,否则后面的Meter会被遮挡,因为该值默认为1.元数据和变量Metadata元数据定义数据结构大小创建时间等等一些信息,对整个皮肤不起作用,所以很多皮肤没有这段或干脆留空。

Variables 变量这段很关键,如果皮肤较大,一些常用的像Font,FontColor等建议放入此处,倒不是图写起来方便,而是修改起来十分方便,整个皮肤看上去也整洁了许多。

调用RM内置变量用@include=加路径引出。

测量部分MeasureMeasure的类,共计13个类,每个类有各自的子项,详细规定了类的属性。

CPU测算CPU负载(如多核可调用PerfMon插件)。

Memory测算内存总利用率。

PhysicalMemory测算物理内存分配。

SwapMemory测算虚拟内存分配。

NetIn测算网络下载流量。

NetOut测算网络上载流量。

NetTotal测算网络总流量。

FreeDiskSpace测算空闲硬盘总量。

PefMon测算终端性能数据。

Uptime显示系统开机后持续的时间。

Plugin插件Registry测算注册表值。

Time测算当前时间和日期。

Calc计算公式。

显示部分(表现方式)MeterMeter的类,共计8个类,每个类有各自的子项,详细规定了类的属性。

HISTOGRAM直方图STRING字符串BAR进度条BITMAP位图IMAGE图像LINE线ROTATOR旋转BUTTON按钮第二节实战起步例 CPU的监测CPU使用率先来看单核代码段[MeasureCPU]Measure=CPU 定义Measure类为CPU[Procesor]MeasureName=MeasureCPU 取前面的测量值Meter=BAR 定义Meter的类为BAR,百分率的后面(四核)讲。

X=Y=H= BAR的高度W= BAR的宽度BarColor=255,255,255,120;BAR的颜色,为十进制16色RGB,也可以用16进制(FF00##)表达。

最后0~255指定透明度。

BarOrientation=VERTICAL BAR的方向性,此处为垂直,水平=HORIZONTAL注意大写Flip=0 如设置为1则反转BAR的方向上-下,左-右。

以目前大家比较关心的四核为例[MeasureCPU0]Measure=Plugin 定义Measure类为插件Plugin=Perfmon.dll 调用系统性能终端监视器插件PerfMonObject="Processor" 项目名称PerfMonInstance=0 核的序号,此处为CPU1,四核分别为0 1 2 3PerfMonCounter="% Processor Time" 计数器名,也可以设置为“Total",没有实例留空。

PerfMonDifference=1 两次测量的差值,设置为0为当前值InvertMeasure=1 设置为1单个的值,如设置为0则叠加数据。

[CPU0]MeasureName=MeasureCPU0 取测量值Meter=STRING 定义Meter的类为字符串Percentual=1 设置为1以百分数显示X=Y=FontColor=StringStyle=NORMAL(BOLD,ITALIC,BOLDITALIC)分别为正常加粗斜体斜体加粗FontSize=StringAlign=LEFT(RIGHT,CENTER) 对齐,分别为:左,右,居中FontFace= 字体,必需为系统已有的NumOfDecimals=1 整数,设置为0显示小数Text="CPU1使用率: %1%"AntiAlias=1 开启抗锯齿CPU温度原来XP下有个CORETEMP插件,WIN7下不能用,要监测的话只能调用外部小程序speedfan,关于这个,详见我在本坛的另一帖。

/thread-250799-1-1.html不再叙述。

第三节律动-旋转的地球熟悉RM的都用过时钟皮肤,那么时针分针是如何实现旋转的呢?今天我们抛开时间,以旋转的地球为例,讲讲Meter 的类ROTATOR旋转。

请看代码:[Rainmeter]Author=Update=50 刷新率,要求较高的刷新率[MeasureTime]Measure=Time 测算时间AverageSize=20 最后20次测量平均值[MeasureCalc]Measure=Calc 定义为计算公式Formula=MeasureTime * 40 将测得的时间数据放大[MeterRotator]Meter=ROTATOR 定义类为ROTATOR旋转MeasureName=MeasureCalcImageName=;旋转的图像名,事先PS好图,尺寸和下面的W H相同,实际上本例中旋转的图片是背景透明的正方体,只不过你看到的是球体在转。

X=Y=W=90OffsetX=45.5 图片偏离X轴中心位置,近似于球体半径OffsetY=45.5 同上 Y轴StartAngle=6.2832 旋边的起始角,以弧度计2ЛRotationAngle=6.2832 旋边的终角,以弧度计2ЛValueReminder=1200 设定旋转一周时间,这个值除以上面的放大倍数40为实际转一周所需时间第四节变量条件语句RM最初只是监测系统参数,严格意义上来说不是编程语言,没有C或JAVA那样用起来顺手。

留给我们发挥的空间很窄,但是,掌握好本节内容才算真正掌握了RM,这一节在实战中所占比例极高。

变量CounterCounter是Measure的类Calc中的重要特殊变量,说重要,是因为Counter是rainmeter 中唯一仅有的一个自变量,说特殊,是因为 Counter在所有Measure更新完后自更新(值加1)。

下面以一段GIF动画制作来讲解Counter的运用如下图:这是一段GIF动画,网上淘来的,先用PS自带的一款软件ImageReady将其解到动画帧,共得到21帧图,给每一帧重新编号1~21,如下图:编写代码:要求Update小于1000[ImageMeter]Meter=ImageImageName=gif\[ImageNumberCalc].png rainmeter中.前面可以插值,这里取下面计算公式得到的值1~21DynamicVariables=1 初始值为1,没这句不显示X=[ImageNumberCalc]Measure=CalcFormula=Counter % 21Counter不断增加,除以21后值在1~21之间循环*注最低要求3帧Substitute=".00000":"" 取整数条件语句IfAboveAction如果实际测量值超过设定值时执行的命令。

IfAboveValueIfAboveAction的设定值。

IfBelowAction如果实际测量值低于设定值时执行的命令。

IfBelowValueIfBelowAction的设定值。

IfEqualAction当测量值等于IfEqualValue定义的值时执行的命令,值四舍五入到整数。

IfEqualValueIfEqualAction的设定值。

实例以我的竖日历皮肤为例:/thread-257616-1-1.html 代码段:[SetDay_31]Measure=CalcFormula=MeasureMonthRangeIfBelowValue=31IfBelowAction=!execute [!RainmeterHideMeter label.Day31]IfAboveValue=30IfAboveAction=!execute [!RainmeterShowMeter label.Day31]这是其中的一段,看这个月有没有31号,有则显示,没有则不显示。

这一段还传达给你一条信息:条件语句的位置,是用在测量部分。

第五节插件如果你问我,rainmeter中共计有多少插件?答案是不知道。

我只能告诉你插件是RM 的重要组成部分,因为RM本身功能并不强大,因为有了各种各样插件的加入,才使得RM 的作用域越来越宽广,RM提供了很好的插件和外部程序接口,故而插件撑起了RM的半边天。

随着RM的不断发展,更多的插件加入到了RM队伍行列。

下面给出的是插件列表,不一定全。

前面已讲了PerfMon.dll插件(监测CPU),AdvancedCPU.dll和它相似,只不过增加了进程过滤功能。

PingPlugin.dll是ping服务器和监测网络延迟。

PowerPLugin.dll是本本电源。

WifiStatus和wirelessInfo是无线网卡。

luna.dll农历插件,ttplay.dll千千插件,SpeedFan.dll为温度插件。

MBM5Plungin.dll是MBM5校验,iTunesPlugin.dll是iTunes播放器插件。

最后一列下面两个是RM1.3新增加的,分别为:虚拟桌面和系统音量插件。

虚拟桌面的范例还没来得及做,以后再补。

音量插件的范例见我的另一帖:/thread-261424-1-1.html这一节重点讲两个常用的插件QutePlugin.dll和WebParser.dll.QutePlugin.dll是抓取图片插件,用于相册皮肤。

代码:[MeasurePlugin]Measure=PluginPlugin=Plugins\QuotePlugin.dllPathName=图片所在的路径FileFilter=*.jpg;*.jpeg;*.png;*.bmp;*.gif 图片格式。

可以为gif,但是只显示为静态的。

Subfolders=1 替换子文件夹,由于该插件是用javascript脚本编写,这两项可以看出java的影子。

[Pic]MeasureName=MeasurePluginMeter=IMAGEX=Y=W= 图片宽度H= 图片高度假使要为图片加背景框,加代码如下[BG]Meter=IMAGEX=0Y=0ImageName= 背景框图片名如果不用背景框,只想用线勾勒出相框,加代码[LINE]Meter=IMAGE *千万注意,此处为什么定义为IMAGE而不是LINE? 因为LINE必需和Measure捆绑,单独用LINE会出错。

相关主题