looklookis 发表于 2012-5-1 06:43:34

Rainmeter常用代码灵活组合运用,变成你需要的效果.

本帖最后由 looklookis 于 2012-5-1 07:29 编辑

因有版友想显示某些效果,但我没有直接帮他编写,只是张他要的效果而又会用的到代码制作成一个皮肤,
在当中做注解让他明白编写的原理,同代码的一些特定的规则,因他已有改写皮肤所以对代码有一定的认
识,所以这皮肤只是和他分享常会见到的代码如何灵活运用,因利成便所以也拿来和大家分享.

会用到有WebParser.dll这插件,天气皮肤,RSS阅读器,本机文件阅读也会用到,理解同运用对以上皮肤除
错会比较容易.
"OnRefreshAction","IfEqualAction","IfAboveAction"以上的特定条件执行代码也很常见,配合这运算
设置使用便可在指定时间或指定的条件执行自己想用的效果.
"Variables","DynamicVariables"变数同动态变数使用更会令显示效果多变,他不只是使用当中的值(可
以是文字值或数学数字值),显示在桌面之上,也可以套用在"Measure"或"Meter"之中.
"Group"群组这设置可以一次使多个同群组的"Measure"或"Meter"指定实施某些动作,例如像下面示范
皮肤中令同一群组的"Meter"设置为隐藏.
也解释下Rainmeter在使用皮肤内的代码设置是由第一行向下使用到最尾一行,这也很重要像下面范例皮
肤,他先是隐藏整个群组的"Meter",才到显示群组内其中的一个"Meter",如果掉转次序张不会显示群组内
其中的这一个"Meter".

范例皮肤是一开始便设置为显示,再用插件读取本机文字档中的3段文字资讯先显示第一段
文字过10秒隐藏第一段再显示第二段,这皮肤便会重复显示这3段文字.

首先先写一个文本.
例子:
第一段:123:完
第二段:456:完
第三段:789:完
写完后存档为look.txt

之后到编写Rainmeter的编码


Author=looklookis
Update=1000
OnRefreshAction=!Execute[!RainmeterShowMeter MeterRSS1] [!RainmeterRedraw]   ;这是设
置一使用这皮肤时先显示第一段读取的资讯,即是显示这个Meter设置


Playlist=1

;Measure~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Measure=Plugin
Plugin=WebParser.dll
CodePage=936   ;这是简体字的编码Code
;CodePage=950    ;这是繁体字的编码Code
Url=file://C:\Users\look\Documents\Rainmeter\Skins\winamp playlistplayer\look.txt   ;刚才写的
文本存放路径
RegExp="(?siU)(?(?=.*第).*段:(.*):完)(?(?=.*第).*段:(.*):完)(?(?=.*第).*段:(.*):完)"   
;这样(?(?=.*第).*段:(.*):完)可能同你见过读取天气或RSS资讯方法不同,但这样读取有其好处,这段(?(?=.*第).*
是先看看资讯内有没有"第"这段,没有则不做之后动作,这样即是用多了读取编码也不会做成错误,之后"段:"是
开始提示通知之后的资讯便是要读取的内容,最后":完"这段是完结提示,通知读取到见这段便完结,这样第一段
读取完结开始读取第二段,直到你设置要读取多少段后便正式停止读取.


Measure=Plugin
Plugin=WebParser.dll
Url=
StringIndex=1    ;因要独立使用每段读取的资讯,所以使用StringIndex=1通知要读取内
的第一段资讯,所以上面便使用Url=通知使用内的已读取资讯.


Measure=Plugin
Plugin=WebParser.dll
Url=
StringIndex=2


Measure=Plugin
Plugin=WebParser.dll
Url=
StringIndex=3


Measure=Calc       ;运算设置可以令每段资讯,一段一段这样显示.
Formula=Counter%11    ;"Counter%"这运算子是由0向上增加到你设置的数值,这里设置为11.
UpdateDivider=1
DynamicVariables=1


Measure=Calc
Formula=MeasureCalc;这里是设置为使用内的数值.
IfEqualValue=10   ;IfEqualAction是如果"Formula="使用的设置内的数值是IfEqualValue设置的数值是
一样时便执行下面设置的动作.
IfEqualAction=!Execute [!RainmeterSetVariable Playlist (#Playlist#+1)] [!RainmeterRedraw]
;!RainmeterSetVariable Playlist是张这Playlist变数改变为这Playlist变数加1,这样设置是当读取的资讯显
示后,当过了11这数值时便显示下一段资讯,当成每段显示时间的长短的的设定,
DynamicVariables=1


Measure=Calc
Formula=#Playlist#;因上面的设置所以这Playlist变数会每10便改变为+1,即是上面每运算一次Playlist变
数便加1.
IfAboveValue=3   ;这里设置为张变数内的数值同这设置的数值做对比.
IfAboveAction=!Execute [!RainmeterSetVariable Playlist 1] [!RainmeterRedraw]    ;因这例子只读取
3段资讯,所以当这Playlist变数是4大过IfAboveValue对比数值3时便张改Playlist变数变为1,因这是比下面的
设置用,是要现在是显示第几段资讯.
DynamicVariables=1


Measure=Calc
Formula=#Playlist# ;使用这Playlist变数内的数值
IfEqualValue=#Playlist#   ;也用这变数内的数值做对比,数值一定是一样的所以下面的设置一定执行.
IfEqualAction=!Execute [!HideMeterGroup RSS] [!RainmeterShowMeter MeterRSS#Playlist#] [!RainmeterRedraw]   
;!HideMeterGroup是隐藏你指定"RSS"这群组,之后才显示这个[!RainmeterShowMeter MeterRSS#Playlist#],
不要张次序掉乱否则不会显示,而MeterRSS后面用这Playlist变数,是因为下面设置为第一段资讯用MeterRSS1
设置显示,所以当变数改变为2时便显示MeterRSS2,这便是改变显示第几段的设置.
DynamicVariables=1

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Group=RSS       ;Group=这是设置群组,"RSS"这是我设置的群组名称
Meter=STRING
MeasureName=MeasureRSS1
X=0
Y=2
FontColor=255,255,255
FontSize=12
text="1: %1"
AntiAlias=1
Hidden=1


Group=RSS
Meter=STRING
MeasureName=MeasureRSS2
X=0
Y=2
FontColor=255,255,255
FontSize=12
text="2: %1"
AntiAlias=1
Hidden=1


Group=RSS
Meter=STRING
MeasureName=MeasureRSS3
X=0
Y=2
FontColor=#FontColor#
FontSize=12
text="3: %1"
AntiAlias=1
Hidden=1

z4775 发表于 2012-5-1 07:11:34

{:soso_e100:}                                          

1197651807 发表于 2012-5-1 08:48:10

支持个,LZ辛苦了。。。学习学习~

245321678 发表于 2012-5-1 09:18:05

学学吧支持楼主

刘春安 发表于 2012-5-1 09:27:54

看不懂的新手

昌哥 发表于 2012-5-1 11:16:15

先支持一下,感谢分享

syw80gjl 发表于 2012-5-1 12:33:11

顶一下               

我代表雷帝 发表于 2012-5-1 13:17:33

马克一个 慢慢学习 LZ辛苦了

wqsg0058 发表于 2012-5-1 15:14:05

    果断前排支持自行车

迷样-KE 发表于 2012-5-9 20:17:41

谢谢,这个正需要,有空要研究研究
页: [1] 2 3 4 5 6 7
查看完整版本: Rainmeter常用代码灵活组合运用,变成你需要的效果.