雨滴社区RM高级教程_第1页
雨滴社区RM高级教程_第2页
雨滴社区RM高级教程_第3页
雨滴社区RM高级教程_第4页
雨滴社区RM高级教程_第5页
已阅读5页,还剩32页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RM高级教程写在开篇之前:Rainmeter(以下简称RM)作为一个基于代码而非图形化界面的开放式桌面美化软件,绝大部分内容都是来自于默默奉献的非盈利制作者(据我所知只有Gnometer、Enigma、ABP是RM官方开发者制作的套装)。一个高素质的RM皮肤制作者群体不仅为推广使用RM提供丰富的内容,反过来也能促进RM在新版本中优化设计、开发更强的功能,可以说是RM的中坚力量[XANCI的RM高级教程]系列教程面向RM皮肤制作者,以及希望深入了解RM并成为皮肤制作者的广大RM使用者。由于本教程不会提供关于"RM如何使用”之类问题的解答,建议新手还是先看看本版的其他入门教程本教程基于最新版本的Rainmeter2.1.0r959英文版,并会随新版本的推出同步更新中文版虽然汉化了程序界面,但是皮肤代码的编辑仍然是英文(RM在可预见的将来不会将代码部分进行本地化),习惯使用英文指代许多RM名词、术语将为理解使用和编辑RM皮肤带来方便,本系列教程在每个英文术语第一次出现时附加翻译,后面则不再翻译另外要提到的一个重要的参考是官方的Manual(使用手册,或称帮助文档)此手册目前汉化工作还在进行中,最新英文版本地址如下http://rainmeternet/cms/Manualbeta当RM使用中遇到任何问题时,希望有条件的同学第一时间先参考Manual中相关条目,因为Manual由RM开发团队编写,其权威性、全面性超过任何网上的教程(本人为了实现一个功能,曾经动用了ColorMatrix,后来发现还有一个ImageTint参数可以使用==)绪论、RM简介当安装完RM后启动,第一次安装的话应该不会加载任何皮肤,右键点击任务栏右侧雨滴状的托盘图标,在弹出菜单中点击About(关于),点击最后一个标签页Version(版本)最上面显示的是你当前的RM版本,以RM2.1英文版为例Rainmeter2.1.0r95964-bit(Sep182011)2.1.0是RM的主版本号,r959是小版本号,2.1.0r959表示这是2.1.0的正式发布版,在2.0.0发布版之后、2.1.0发布版之前的一系列测试版的版本号则会显示为诸如2.1.0betarXXX,代表2.1.0的测试版,XXX编号会小于正式版的959,RM团队会在每个测试版中修正bug,增加新的功能。RM正式版本间的开发期通常比较长,其中新出的皮肤可能部分用到beta版本的功能,建议随时关注官网下载最新的版本64-bit表示你安装的是适用64位系统的版本,对64位系统的支持较好,有些Plugin(插件)会区分32和64位版本Sep182011表示当前版本发布的日期,2.1中文版显示的是Sep202011,新版本的翻译工作也是需要时间的,向翻译组的无私奉献致敬!二、 RM路径还是Version标签页,下面有三个路径,每人的电脑上区别于系统设置、安装时的选择等等1.Path(主路径):通常位于ProgramFiles\Rainmeter\,是RM主程序的安装路径,其下有两个重要文件夹:Addons(附加组件)和Plugins(插件)2.IniFile(配置文件):通常位于AppData\Roaming\Rainmeter\,其下Rainmeter.ini是当前桌面的配置[注1];Rainmeter.stats是独立的网络流量统计;Themes文件夹下是主题,注意放在RM安装目录下的Themes文件夹中的主题是不会生效的,必须移至这里3.SkinPath(皮肤):通常位于Documents\Rainmeter\Skins\,存放RM的Skin,同样放在RM安装目录下的Skins文件夹中的皮肤是不会生效的,必须移至这里有关RM中如何引用各种路径的方法会在后面的教程中介绍三、 RM工作结构当RM启动时,会先加载Rainmeterini,然后启动Rainmeter.ini中记录的皮肤配置文件,这些都加载到电脑内存当中,任何对于Rainmeter调用的文件的修改都需要Refresh(刷新,对应单独的皮肤.ini文件)或者RefreshAll(全部刷新,同时会更新目录).ini皮肤文件除去文件头外,主体分为两部分:Measure(度量)和Meter(仪表),前者用于获取数据,后者决定内容的显示方式四、 RM编辑、调试工具对于RM使用的.ini和.inc等文件,用系统自带的记事本就可以修改,另外RM还提供了2个工具RainManager直接左键点击任务栏RM的托盘图标,或者在RM右键菜单[注2]中点击最上面的Managed理)就可打开Skins标签页用于管理加载、设置皮肤在桌面的显示方式和行为,不再累述;Themes标签页用于管理主题,但过去的RM主题管理器曾经有各种各样的问题和BUG,建议在有关主题的操作中从资源管理器和记事本进行创建、修改主题文件;第三个Settings标签页不常用AboutRM右键菜单中Manage下面,也就本篇开头查看版本的地方Log(日志)标签页用于记录RM的运行状态,皮肤工作不正常时这里也会显示报错信息;Measures标签页用于显示当前加载的各个皮肤中的Measure值;Plugins标签页用于显示当前加载的插件,不重要;最后一个就是Version标签页五、其他RM编辑系统所谓RM代码,指RM自身调用的.ini和.inc文件,也是大部分编辑工作的对象,但是只会写RM代码还是不够的,下面内容虽然不在本教程涉及范围内,还是希望大家尽量学习、掌握图像处理软件常用的PhotoShop足已,用以绘制皮肤调用的图像,通常使用带Alpha(透明)通道的.png格式RegularExpression(正则表达式)RM使用的一种查找和替换文本的表示法,最常见于调用WebParser.dll插件的Measure(RegExp=),如天气、RSS浏览器等,大部分此类皮肤的编辑只需参考同类皮肤;其次是一些Measure中复杂的Substitute(替换),不常见LuaScript(Lua脚本)我们不得不承认RM自身的代码虽然还在不断完善中,但功能是非常有限的,所以有些高级功能的实现需要调用Lua脚本,后面有关Measure的教程会简单提到如何调用Lua脚本注1:AppData\Roaming\Rainmeter\下的Rainmeter.ini与任意主题文件夹下的Rainmeter.thm都称之为RM配置文件,记录使用的皮肤和皮肤显示行为,加载任一Rainmeter.thm都会覆盖当前的Rainmeterini注2:右键点击RM任务栏托盘图标出现的菜单称之为RM右键菜单,右键点击任意皮肤出现的菜单中下方的Rainmeter里才是RM右键菜单预告按计划的教程顺序之后将讲解RM的路径系统、!BangG指令)系统,再回头讲解RM的主体(配置文件、皮肤文件、Measure和Meter),最后讲解RM高级功能的核心:变量系统至于为何将路径和指令系统放在皮肤文件之前讲解,本人一直认为RM中UI的设计、Meter,甚至是Measure都不是RM的核心,是可以轻易复制和仿制的,一个套装只要重新绘制UI,简单修改下主题、皮肤中Meter的参数,就可以完全变成另一个样子,核心却没有变化。而路径和指令系统不光是变量系统的基础,也是整个RM代码中常用的、不可或缺的一部分,所以放在实际的Measure和Meter之前当然大家也可以先跳过路径和指令系统,直接阅读RM主体部分,这样能快速开始皮肤的编辑工作路径一、RM三大路径位置RM三大路径分别是RM主程序安装位置、主题配置文件位置、皮肤配置文件位置,在第一讲绪论中已经简单介绍过二、RM路径还是Version标签页,下面有三个路径,每人的电脑上区别于系统设置、安装时的选择等等1.Path(路径):通常位于ProgramFiles\Rainmeter\,是RM主程序的安装路径,其下有两个重要文件夹:Addons(附加组件)和Plugins(插件)2.Settings(设置):通常位于AppData\Roaming\Rainmeter\,其下Rainmeter.ini是当前桌面的配置;Rainmeter.stats是独立的网络流量统计;Themes文件夹下是主题,注意放在RM安装目录下的Themes文件夹中的主题是不会生效的,必须移至这里3.Skins(皮肤):通常位于Documents\Rainmeter\Skins\,存放RM的Skin,同样放在RM安装目录下的Skins文件夹中的皮肤是不会生效的,必须移至这里以本人的电脑为例,贴上About-Version中的内容,本篇之后的所有例子都是基于这三个路径Rainmeter2.1.0r95964-bit(Sep182011)Path:D:\ProgramFiles\Rainmeter\Settings:D:\AppData\Roaming\Rainmeter\Skins:D:\Documents\Rainmeter\Skins\同时之后的例子中不包括前后引号”,以及注意路径前后是否有”\",正确的路径以蓝色字体标出二、 Skins文件夹Skins是存放RM使用皮肤的文件夹,注意.ini文件直接放在Skins下是不会被RM识别的,至少要放入一级子文件夹中Skins下的任意文件夹内的.ini文件同一时间内只能有一个处于活动状态(直接位于该文件夹内的.ini文件,不包括其子文件夹中的.ini文件)任何包含有效.ini文件的文件夹都可称为一个Config,Config是许多!Bang指令需要的参数之一,一个能正确使用的Config名称不包括"Skins\"及之前的路径、之后的"\"和.ini文件名例:有如下文件Skins\Folder1\Skin1.iniSkins\Folder1\Folder2\Skin2.ini对于Skin1.ini,其正确的Config为"Folder1”对于Skin2.ini,其正确的Config为"Folder1\Folder2”三、 路径的引用RM中除了直接使用完整的路径名外,还有许多路径变量,属于RM的Built-inVariables(内置变量),下面一一介绍1.固定的路径,在RM安装完成后就是固定的,因人而异#PROGRAMDRIVE#RM安装盘符,例:"D:"#PROGRAMPATH#RM安装路径,例:"D:\ProgramFiles\Rainmeter\"#SETTINGSPATH#RM配置文件的路径,例:"D:\AppData\Roaming\Rainmeter\"#SKINSPATH#RM皮肤文件的路径,例:"D:\Documents\Rainmeter\Skins\"#PLUGINSPATH#RM插件的路径,例:"D:\ProgramFiles\Rainmeter\Plugins\"#ADDONSPATH#RM附加组件的路径,例:"D:\ProgramFiles\Rainmeter\Addons\"变化的路径,根据调用位置不同而异为举例,还是设Skins有以下两个文件Skins\Folder1\Skin1.iniSkins\Folder1\Folder2\Skin2.ini#CURRENTPATH#当前.ini文件的路径对于Skin1.ini:"D:\Documents\Rainmeter\Skins\Folder1\"对于Skin2.ini:"D:\Documents\Rainmeter\Skins\Folder1\Folder2\"#CURRENTFILE#当前.ini文件的名称对于Skin1.ini:"Skin1.ini"对于Skin2.ini:"Skin2.ini"#CURRENTCONFIG#当前.ini文件的Config对于Skin1.ini:"Folder1"对于Skin2.ini:"Folder1\Folder2"#ROOTCONFIGPATH#当前.ini文件到Skins下一级子文件夹的完整路径对于Skin1.ini:"D:\Documents\Rainmeter\Skins\Folder1\"对于Skin2.ini:"D:\Documents\Rainmeter\Skins\Folder1\"路径变量在引用时可以组合使用,例:#CURRENTPATH##CURRENTFILE#对于Skin1.ini:"D:\Documents\Rainmeter\Skins\Folder1\Skin1.ini"对于Skin2.ini:"D:\Documents\Rainmeter\Skins\Folder1\Folder2\Skin2.ini"对于不同的!Bang指令,有些需要的参数是Config,有些需要的参数是.ini文件的完整路径,使用时注意正确引用I5C/TJh」■/工II、HMjVI厂口 .. —!Bang指令、介绍!Bang指令(以下简称修明)是RM用来调控RM内部参数、执行外部命令的指令,跟随在触发器之后在RM2.1以前的版本中,完整的写法例如刷新当前皮肤:!RainmeterRefresh从2.1版本起,指令开头的"Rainmeter"可以省略,这个!Bang改为!Refresh当然老版本皮肤中带有Rainmeter的!Bang同样也能被识别本讲内容主要带大家大致了解RM中有哪些旧ang触发器,以及旧ang有哪些功能,特定!Bang的使用方法在后面对应章节会有详细说明二、触发器[Rainmeter]特有触发器皮肤.ini文件头[Rainmeter]区内特有的触发器只有一个OnRefreshAction=这个触发器会在皮肤第一次加载、以及每次刷新时触发[Rainmeter]下还可以使用MouseActions(鼠标动作),见下文[Measure]特有触发器Measure下的触发器又称为IfActions,有三个IfAboveAction=当Measure值大于时触发IfBelowAction=当Measure值小于时触发IfEqualAction=当Measure值等于时触发以及对应使用的判断值IfAboveValue=IfBeloWValue=IfEqualValue=IfActions使用时有三点需要特别注意1)IfAction和IfValue的前后顺序没有规定IfAboveAction=IfAboveValue=与IfAboveValue=IfAboveAction=都是正确的写法2) 对于IfAboveAction,当Measure值大于判断值触发后,只有Measure值变化到小于判断值并再次大于判断值时才会再次触发;对于IfBelowAction,当Measure值小于判断值触发后,只有Measure值变化到大于判断值并再次小于判断值时才会再次触发;对于IfEqualAction,当Measure值等于判断值触发后,只有Measure值变化到大于或小于判断值并再次等于判断值时才会再次触发3) 同一Measure下,可以同时出现IfAboveAction、IfBelowAction、IfEqualAction,但每个触发器只能出现一次,即使使用不同判断值的同一触发器也不能正确被识别[Meter]特有触发器各类Meter中只有Button(按钮)Meter自带一个触发器ButtonCommand=当按下Button时触发同时各类Meter下也可使用MouseActionsMouseActionsMouseActions是一系列识别鼠标动作的触发器,可位于.ini皮肤文件头[Rainmeter]下,对整个皮肤生效,也可位于单独[Meter]下,只对该Meter生效LeftMouseDownAction=左键按下时触发,使用这个触发器同时会使皮肤的拖动失效RightMouseDownAction=右键按下时触发,使用这个触发器同时会使皮肤的右键菜单失效MiddleMouseDownAction=中键按下时触发LeftMouseUpAction=左键松开时触发RightMouseUpAction=右键松开时触发,使用这个触发器同时会使皮肤的右键菜单失效MiddleMouseUpAction=中键松开时触发LeftMouseDoubleClickAction=左键双击时触发RightMouseDoubleClickAction=右键双击时触发,使用这个触发器同时会使皮肤的右键菜单失效MiddleMouseDoubleClickAction=中键双击时触发MouseOverAction=鼠标移至上方时触发MouseLeaveAction=鼠标离开上方时触发MouseActionCursor伴随MouseActions使用的一个参数,默认为1,即鼠标移至有MouseAction区域上方时将变为点击样式,0则为不发生变化当MouseActionCursor=0在文件头[Rainmeter]T使用时对整个皮肤生效,但在特定[Meter]下加上MouseActionCursor=1可覆盖全局设定当你在包括有MouseActions或ButtonCommand的Meter或Button上方有另外一个Meter时,位于上方的Meter必须设置MouseActionCursor=0才可使下方的触发器生效,即使上方的Meter没有设置MouseActionsMouseActions使用时还需注意1) 如果皮肤被设置为Clickthrough,整个皮肤上的任何MouseActions都不会触发2) Left/Right/MiddleMouseDoubleClickAction后面如果没有!Bang,会转而执行对应的Left/Right/MiddleMouseDownAction(如果有的话)三、!Bangs以下说明格式为!Bang[必须参数](可选参数)!Execute!Execute是RM中使用最多、功能最强的!Bang,主要有两种使用方法1) 当有多个!Bang需要同时执行时使用,子!Bang用”["、”]”分隔!Execute[!Bang1][!Bang2][!Bang3]2) 执行外部程序,可以包括执行参数,注意被执行的路径前后必须有引号”!Execute["C:\Windows\Notepad.exe"]打开记事本!Execute["C:\Windows\Notepad.exe""#CURRENTPATH##CURRENTFILE#"]使用记事本打开当前.iniRM程序相关!Bangs!About(TabName)打开RM右键菜单中的About窗口!Manage(TabName)打开RM右键菜单中的Manage窗口,即RainmeterManager!LsBoxHook[Config]调用LiteSteplsBox,不常见!ResetStats将#SETTINGSPATH#Rainmeter.stats中的数据(网络流量统计)清零!RefreshApp相当于RM右键菜单中的Refrashall!Quit退出RM3.变量操作类!Bangs!SetOption[Meter/Measure][Option][Value](Config)改变Meter或Measure下的参数!SetOptionGroup[Group][Option][Value](Config)改变Meter/MeasureGroup下的参数!WriteKeyValue[Section][Key][Value](FileSpec)将RM使用的.ini或.inc文件内容永久性改写!SetVariable[Variable][Value](Config)改变变量的值!SetVariableGroup[Variable][Value][Group]改变ConfigGroup内变量的值4.Skin操作类!Bangs!Show(Config)显示!Hide(Config)隐藏!Toggle(Config)切换显示或隐藏!ShowGroup[Group]显示ConfigGroup!HideGroup[Group]隐藏ConfigGroup!ToggleGroup[Group]切换显示或隐藏ConfigGroup!Move[X][Y](Config)移动!ActivateConfig[Config][Ini-file]加载!DeactivateConfig(Config)卸载!DeactivateConfigGroup[Group]卸载ConfigGroup!ToggleConfig[Config][Ini-file]切换加载或卸载!Refresh(Config)刷新!RefreshGroup[Group]刷新ConfigGroup!Update(Config)更新!UpdateGroup[Group]更新ConfigGroup!Redraw(Config)重新绘制!RedrawGroup[Group]重新绘制ConfigGroup!SetTransparency[AlphaAmount](Config)设置透明度!SetTransparencyGroup[AlphaAmount][Group]设置ConfigGroup透明度!ShowFade(Config),!HideFade(Config),!ToggleFade(Config)显示、隐藏、切换显示或隐藏时使用渐变效果!ShowFadeGroup(Config),!HideFadeGroup(Config),!ToggleFadeGroup(Config)显示、隐藏、切换显示或隐藏ConfigGroup时使用渐变效果!ShowBlur(Config)显示Aero效果!HideBlur(Config)隐藏Aero效果!ToggleBlur(Config)切换显示或隐藏Aero效果!AddBlur[Region](Config)添加Aero效果区!RemoveBlur[Region](Config)移除Aero效果区!Draggable[NewSetting](Config)设置允许拖动!DraggableGroup[NewSetting][Group]设置ConfigGroup允许拖动!ZPos[POS](Config)设置垂直位置!ZPosGroup[POS][Group]设置ConfigGroup垂直位置!KeepOnScreen[NewSetting](Config)设置钉在桌面!KeepOnScreenGroup[NewSetting][Group]设置ConfigGroup钉在桌面!ClickThrough[NewSetting](Config)设置点击穿透!ClickThroughGroup[NewSetting][Group]设置ConfigGroup点击穿透!SnapEdges[NewSetting](Config)设置边缘吸附!SnapEdgesGroup[NewSetting][Group]设置ConfigGroup边缘吸附Measure操作类!Bangs!EnableMeasure[Measure](Config)启用!EnableMeasureGroup[Group](Config)启用MeasureGroup!DisableMeasure[Measure](Config)禁用!DisableMeasureGroup[Group](Config)禁用MeasureGroup!ToggleMeasure[Measure](Config)切换启用或禁用!ToggleMeasureGroup[Group](Config)切换MeasureGroup启用或禁用!UpdateMeasure[Measure](Config)更新!UpdateMeasureGroup[Group](Config)更新MeasureGroup!CommandMeasure[Measure][Arguments](Config)Measure命令,参数视Measure类别不同而异Meter操作类!Bangs!ShowMeter[Meter](Config)显示!HideMeter[Meter](Config)隐藏!ToggleMeter[Meter](Config)切换显示或隐藏!UpdateMeter[Meter](Config)更新!MoveMeter[X][Y][Meter](Config)移动!ShowMeterGroup[Group](Config)显示MeterGroup!HideMeterGroup[Group](Config)隐藏MeterGroup!ToggleMeterGroup[Group](Config)切换显示或隐藏MeterGroup!UpdateMeterGroup[Group](Config)更新MeterGroup!Bang使用注意1.当使用OnRefreshAction或IfActions时,慎用刷新类!Bangs,可能造成RM循环刷新进而卡死!Bangs使用时建议所有参数用引号”括起,因为路径类、公式类参数引用后中间有可能包含空格,导致参数识别错误当参数内一部分时包含引号”、未配对的括号”(”等可能导致识别歧义的符号时,参数两头使用三重引号”"”才能使参数正确识别Rainmeter.ini/Rainmeter.thm一、 介绍Rainmeter.ini位于#SETTINGSPATH#,Rainmeter.thm位于#SETTINGSPATH#下各主题文件夹两者的主要功能均为记录RM以何种方式加载哪些皮肤,区别是前者记录当前或最后一次关闭RM时的状态,后者记录设置好的主题RM2.1版本以前的网络流量统计也是记录在Rainmeterini/.thm中,从2.1版本开始与主题分离,单独记录在#SETTINGSPATH#下的Rainmeter.stats中如无需要,Rainmeter.ini/.thm中大部分参数不用手动写上,保持默认即可。部分参数若.thm中没有提到,在RM加载主题时会自动写入.ini中二、 文件头[Rainmeter]的参数Trayicon设为0则不会显示托盘图标TrayExecuteL,TrayExecuteM,TrayExecuteR,TrayExecuteDL,TrayExecuteDM,TrayExecuteDR分别为鼠标左/中/右键单/双击托盘图标的触发器,设置TrayExecuteR会覆盖默认的RM右键菜单,按住Ctrl再点击则会执行默认行为ConfigEditor当在RM右键菜单中点击EditSkin(编辑皮肤)时使用的编辑器,默认为记事本SkinPathSkins文件夹的路径,留白则会自动使用#SKINSPATH#Logging设为1的话,About对话框Log标签页中的内容都会记录在#SETTINGSPATH#Rainmeteriog中Debug设为1的话Logging记录会更详细,适用当前皮肤的运行会拖慢RM运行甚至卡住等恶性情况DisableVersionCheck设为1的话RM将不会检查更新,只有下一个版本号的正式发布版才会提醒更新,beta版将不会提醒三、托盘图标行为[TrayMeasure]的参数Measure使用的MeasureTrayMeterMeter类型只能为HISTOGRAM或BITMAPTrayColor1当Meter类型为HISTOGRAM时的背景色TrayColor2当Meter类型为HISTOGRAM时的前景色TrayBitmap当Meter类型为HISTOGRAM时使用的图像,每帧尺寸必须为16x16,路径从Skins媚算起。图像格式可以为ico,bmp,gif,png,但只有.ico能正确显示Alpha通道各皮肤配置[ConfigName]的参数WindowX,WindowY皮肤的X,Y坐标,左上方为原点,可使用百分号%,表示占整个屏幕的百分比位置AnchorX,AnchorY皮肤锚点的X,Y坐标,皮肤左上方为原点,皮肤的X,Y坐标为原点到皮肤锚点的距离SavePosition设置为1则RM会记录皮肤的位置并在下一次启动时载入AlwaysOnTop皮肤的垂直位置,取值-2对应"Ondesktop",即位于桌面;-1对应”Bottom”,即位于其他窗口之下;0对应"Normal",即行为与其他窗口相同;1对应"Topmost",即位于其他窗口之上;2对应"Staytopmost",即始终位于其他窗口之上Draggable设置为1则皮肤可拖动SnapEdges设置为1则皮肤拖动时会吸附屏幕边缘或其他皮肤边缘,拖动时按住Shift/Ctrl/Alt不会吸附HideOnMouseOver设置为1则当鼠标置于皮肤之上时皮肤会隐藏,移开鼠标会重新显示,鼠标移动时按住Shift/Ctrl/Alt皮肤不会隐藏/显示StartHidden设置为1则皮肤载入后保持隐藏NativeTransparency设置为1来启动本地透明度支持,只当系统为XP时可使用AlphaValue设置皮肤透明度(0-255),XP系统需要开启NativeTransparencyFadeDuration皮肤的渐变时间,单位为毫秒ClickThrough设置为1则皮肤不会响应鼠标动作,XP系统需要开启NativeTransparency,按住Shift/Ctrl/Alt皮肤会正常响应KeepOnScreen设置为1则皮肤始终会显示在桌面区域内LoadOrder皮肤的加载顺序,默认为0,数字大的会显示在上层,同层的按字母表顺序加载,LoadOrder并不影响AlwaysOnTop的设置,AlwaysOnTop设置相同皮肤的显示的才会受LoadOrder影响,另外AlwaysOnTop只影响皮肤的显示,涉及到某些变量时还需考虑LoadOrderGroupConfigGroup,多个Group名用"|"分隔,同样可以写在皮肤.ini内皮肤.ini文件的结构系列教程到了第五讲终于开始讲实际的皮肤文件了==RM的各种.ini/.inc/.thm文件都是由一个个[Section]构成的,即用方括号"[","]"括起的Section名,上一讲的配置文件.ini/.thm中的Section使用都十分简单,但是Section在皮肤文件结构中是十分重要的一个概念、名称固定的Section皮肤文件头[Rainmeter]1)背景参数Background背景图像,如果下面BackgroundMode选择了0而本参数空缺的话,将使用桌面背景BackgroundMode0对应使用单一图像;1对应透明(默认);2对应使用颜色;3对应拉伸的图像;4对应平铺的图像ImageCrop裁剪图像,格式为ImageCrop=X,YW,H,OriginXY是裁剪的起始坐标,WH是裁剪区域的宽和高,Origin为可选参数:1,2,3,4,5分别对应原点在左上、右上、右下、左下、中央Greyscale设置为1则图像将显示为黑白ImageTint图像染色ImageFlip图像翻转,有效参数:NONE(不翻转);HORIZONTAL(水平);VERTICAL(垂直);BOTH(旋转180度)ImageRotate图像旋转,顺时针,单位度图像变化应用的顺序为ImageCrop->GreyScale->ImageTint->ImageFlip->ImageRotateBackgroundMargins当BackgroundMode=3(即拉伸图像)时使用,格式为BackgroundMargins=L,[R,B,分别表示左、上、右、下不拉伸而保持原比例的区域宽度SolidColorBackgroundMode=2时的主颜色SolidColor2BackgroundMode=2时的副颜色,使用此参数会制造一个渐变效果,默认主颜色在左副颜色在右GradientAngle修改渐变效果的角度,顺时针,单位度BevelTypeBackgroundMode=2时在色块边缘制造阴影效果,0为没有,1突起,2为下沉Blur设置为1开启win7的aero效果BlurRegion,BlurRegion2,...如果没有定义BlurRegion,aero效果将应用于整个皮肤,格式为BlurRegion=1,x1,y1,x2,y2,矩形区域;BlurRegion=2,x1,y1,x2,y2,r,圆角矩形,r为圆角半径;BlurRegion=3,x1,y1,x2,y2,椭圆区域。以上三组参数,第一个若为0则该BlurRegion无效,x1y1为区域左上角坐标,x2y2为右下角坐标2)其他参数GroupConfigGroup,多个Group名用"|"分隔,同样可以写在Rainmeterini/.thm内Update更新间隔,单位毫秒TransitionUpdateBitmap使用TransitionFrames(切换间隔帧)时的切换间隔,单位毫秒DynamicWindowSize设置为1的话皮肤尺寸使用的变量改变时皮肤尺寸会响应变化DragMargins设置鼠标在设定区域时不会拖动皮肤,格式为DragMargins=L,T,R,B分别表示左、上、右、下的区域宽度OnRefreshAction皮肤加载或刷新时触发的动作Author作者==AppVersion皮肤需要的最低RM版本,格式为Major*1000000+Minor1*1000+Minor2,RM2.1是2001000LocalFont,LocalFont2,...允许使用没有安装到windows内的本地字体文件[Metadata]Metadata下面都是一些打酱油的注释类数据Name皮肤名称Information皮肤注释,使用"|"换行Version皮肤版本License许可证类型变量区[Variables]1) 直接变量声明变量名=变量值引用时使用#变量名#,注意#变量名#是变量值的简单字符串替换2) @Include引用其他.ini/.inc中[Variables]区的变量或Style(关于Style的使用下文有说明),需完整路径当有多个文件需要引用时,使用@Include1=,@Include2=,…二、名称不定的SectionMeasures任何下方有有效Measure=XXX的Section称为一个Measure,名称要保证唯一性Meters任何下方有有效Meter=XXX的Section称为一个Meter,名称要保证唯一性3.Styles不属于Measure和Meter的Section都被判定为StylesStyle可以在Meter中使用,格式MeterStyle=StyleName则位于StyleName下的所有参数都会添加到这个Meter下,如有重复参数,Meter下的会覆盖StyleName下的MeterStyle后也可跟其他Meter,作用同上关于Measures,MetersMeasure,Meter非简单一一对应关系,可以一对多、多对一,还可有不被 Meter使用的Measure(通常是做变量计算的CalcMeasure)与不使用Measure的Meter(固定图片、文字)下一讲详细解析Measure与MeterMeasures一、 类型Section下的"Measure="后面就是Measure的类型了,分别如下Calc计算CPUCPU利用率FreeDiskSpace磁盘可用空间Memory/PhysicalMemory/SwapMemory总内存/物理内存/虚拟内存使用率NetIn/NetOut/NetTotal网络下行速度/网络上行速度/总网络速度Plugin使用插件RegHKey注册表值ScriptLua脚本Time时间Uptime开机时间二、 通用参数GroupMeasureGroup,多个Group名用"|"分隔InvertMeasure设置为1则Measure将测量相反的数值,如在FreeDiskSpace中使用则测量已用磁盘空间Disabled设置为1则Measure将被禁用,禁用的Measure不会更新,引用为数值时会返回0,但是引用为字符串时仍会返回一个文本UpdateDividerMeasure更新间隔的乘子,Measure更新间隔=Update*UpdateDivider。若设置为-1则会禁用更新,该Measure只会在刷新时更新MaxValueMeasure显示的最大值,默认为1.0,Measure实际值不会改变。在某些Meter例如HISTOGRAM中,这个参数还用来调节显示的比例MinValueMeasure显示的最小值,默认为0.0,Measure实际值不会改变。在某些Meter例如HISTOGRAM中,这个参数还用来调节显示的比例Substitute替换,格式为Substitute="find1":"replace1","find2":"replace2",...。当需要替换引号”时,使用单引号',例:Substitute^"':"”,将移除所有的引号。单引号只能用于Substitute的一边,两边都使用单引号将无法识别RegExpSubstitute设置为1则可在Substitute中使用正则表达式AverageSize平均值组大小,例:AverageSize=10,则Measure将返回最近10个值的平均值三、Measures1.CalcFormulaCalcMeasure计算的公式UpdateRandom设置为1则Calc使用的随机数在每次更新时都会重新取值,否则在刷新后随机数将固定HighBound随机函数使用的上限LowBound随机函数使用的下限算符:+(加)-(减)*(乘)/(除)**(乘方)%(求余)&(按位与)|(按位或)八(按位异或)~(按位非)逻辑算符:<>(不等于)=(等于)>(大于)<(小于)&&(逻辑与)||(逻辑或)函数:ATAN(x),ASIN(x),ACOS(x),COS(x),SIN(x),TAN(x)-三角函数ABS(x)-绝对值EXP(x)-e指数LOG(x)-以10为底的对数LN(x)-自然对数SQRT(x)-平方根SGN(x)-x的符号,当x为正数时返回1,负数时返回-1FRAC(x)-返回x的小数部分TRUNC(x)-返回x的整数部分FLOOR(x)-向下舍入CEIL(x)-向下舍入ROUND(x[,precision])-将x舍入到指定的位数常数:PI,~3.14159265...E,~2.71828182...条件算符:"条件”?"条件为真时的表达式”:”条件为假时的表达式”随机函数:函数''RANDOM"将返回位于"LowBound"与"HighBound”之间的整数其他进制:0b-二进制,例:0b110110返回540o-八进制,例:0o123返回830x-十六进制,例:0xF1返回241CPUProcessor设置显示的核心,默认为0,即返回所有核心的平均值FreeDiskSpaceDrive盘符Total设置为1则返回总磁盘空间Label设置为1则返回磁盘标签Type(2.2r1074以后)设置为1则返回磁盘类型IgnoreRemovable设置为1则忽略可移动磁盘Memory/PhysicalMemory/SwapMemoryTotal设置为1则返回总容量NetIn/NetOut/NetTotalNetInSpeed/NetOutSpeed/NetTotalSpeed设置最高速度,单位为比特/秒Interface网卡ID,默认为0,即返回所有网卡的总和Cumulative设置为1则返回流量总值PluginPlugin使用的插件名称RegistryRegHKey注册表主键,有效值如下:HKEY_CURRENT_CONFIG,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_CLASSES_ROOT,HKEY_PERFORMANCE_DATA,HKEY_DYN_DATARegKey键RegValue键值8.ScriptScriptFileLua脚本名TimeFormat时间格式,例:Format="%H:%M:%S”TimeZone时区,例:TimeZone=+8.0DaylightSavingTime夏令时时间格式代码:%a-星期名缩写%A-星期名全称%b-月缩写%B-月全称%c-日期与时间%d-月天数(01-31)%H-24小时制(00-23)%I-12小时制(01-12)%j-年天数(001-366)%m-月(01-12)%M-分(00-59)%p-12小时制的A.M./PM.%S-秒(00-59)%U-年星期数,以星期日为第一天(00-53)%w-星期名(0-6,星期天为0)%W-年星期数,以星期一为第一天(00-53)%x-日期%X-时间%y-年(00-99)%Y-年%z,%Z-时区名与时区缩写%%-百分号#-在格式代码前加"#"将移除数字前面的0UptimeFormat时间格式,例:Format="%4!i!d%3!i!:%2!02i!"AddDaysToHours如果%4(天)没有包括在格式内,3%(时)将会加上天*24,这个参数设置为0则天不会加到小时上时间格式代码:%4-天%3-时%2-分%1-秒!i!-在格式代码后加"!i!"将移除数字前面的0!02i!-在格式代码后加"!02i!"将显示数字前面的0Meters一、类型Section下的"Meter="后面是Meter的类型,分别如下STRING文本BAR条ROUNDLINE圆环IMAGE图像BITMAP多帧图像ROTATOR旋转图像LINE线图HISTOGRAM直方图BUTTON按钮二、通用参数MeterStyle使用的Style,Style中的参数可由在Meter下再次声明覆盖MeasureName使用的MeasureXX坐标,可在结尾使用"r"表示与上一个Meter的X坐标的距离,"R"表示与上一个Meter右端的距离YY坐标,可在结尾使用"r"表示与上一个Meter的Y坐标的距离,"R"表示与上一个Meter下端的距离W宽度,在诸如IMAGE或STRING等Meter中有时可不定义H高度,用法同宽度X”W,H后面都可以跟表达式,需要用括号,例:X=(#SCREENAREAWIDTH#-200)Hidden设置为1则Meter隐藏UpdateDividerMeter更新间隔的乘子,Meter更新间隔=Update*UpdateDividerSolidColor背景主颜色SolidColor2背景副颜色,使用此参数会制造一个渐变效果,默认主颜色在左副颜色在右GradientAngle修改渐变效果的角度,顺时针,单位度BevelType在背景色块边缘制造阴影效果,0为没有,1突起,2为下沉AntiAlias设置为1则使用反锯齿效果ToolTipText提示文本,即鼠标移至Meter上会出现的工具提示,可使用1%,2%,3%,...代表Meter使用的Measure的值ToolTipTitle提示标题,黑体显示,只有一行所以无法使用#CRLF#换行ToolTipIcon提示图标,必须在设置提示标题后才可使用,有效值:INFO,WARNING,ERROR,QUESTION,SHIELDToolTipType提示框类型,0为普通矩形,1为气球形ToolTipWidth提示框最大宽度,超出宽度的文本将自动换行ToolTipHidden设置为1则提示框隐藏TransformationMatrix变形矩阵三、Meters1.STRINGString不一定必须与Measure绑定,可用"Text="显示固定文字,也可在"Text="中用"%1,%2,..."混合显示Measure值与固定文字。当你只想单纯显示Measure值时,''Text="参数可省略MeasureName,MeasureName2,...String可以使用多个MeasureFontColor文字颜色FontFace文字字体FontSize文字大小Prefix前缀Postfix后缀StringAlign文本对齐方式,有效参数:LEFT(居左);CENTER(居中);RIGHT(居右)StringStyle文本格式,有效参数:NORMAN(正常);BOLD(粗体);ITALIC(斜体);BOLDITALIC(粗斜体)StringEffect文本特效,有效参数:NONE(无);SHADOW(阴影);BORDER(描边)FontEffectColorStringEffect使用的颜色StringCase字母大小写,有效参数:NONE(无);UPPER(大写);LOWER(小写);PROPER(合适,即首字母大写)ScaleMeasure值缩放比例,Measure值将除以这个参数,即设置为100则Measure值缩小100倍。若参数值为小数,缩放后的Measure值将显示为带一位小数AutoScaleMeasure值自动缩放,单位为T,G,M,k等,使用此参数将覆盖Scale的设置,有效值为:0(默认);1(单位倍率为1024);1k(单位倍率为1024,最小单位k);2(单位倍率为1000);2k(单位倍率为1024,最小单位k)Percentual设置为1则Measure值将按百分比显示NumOfDecimalsMeasure值小数点后位数Text文本,使用%1,%2,...代表MeasureName,MeasureName2,...ClipString裁剪文本,该Meter必须指定W与H。当一行文本超过宽度时若高度足够显示下一行则自动换行,若不够显示则文本末尾用"..."代替Angle文本旋转角,顺时针,单位弧度2.BARBar显示为水平或者垂直的一个矩形条,填充的长度对应Measure值。Bar相应的Measure取值应当在0.0到1.0之间,或者MaxValue与MinValue均已指定BarImage变化应用的顺序为ImageCrop->GreyScale->ImageTint->ImageFlip->ImageRotateBarColor颜色BarImage填充Bar的图像,使用此参数将覆盖BarColor的设置,同时覆盖W与H的设置并以图像原始尺寸显示BarBorder当使用BarImage时,Bar两端始终显示的图像宽度,对垂直Bar即为上下两端,对水平Bar即为左右两端ImageCrop裁剪图像,格式为ImageCrop=X,YW,H,OriginXY是裁剪的起始坐标,WH是裁剪区域的宽和高,Origin为可选参数:1,2,3,4,5分别对应原点在左上、右上、右下、左下、中央Greyscale设置为1则图像将显示为黑白ImageTint图像染色ImageFlip图像翻转,有效参数:NONE(不翻转);HORIZONTAL(水平);VERTICAL(垂直);BOTH(旋转180度)ImageRotate图像旋转,顺时针,单位度ColorMatrixN颜色矩阵ImageAlpha图像透明度,0-255BarOrientationBar方向,有效参数:HORIZONTAL(水平);VERTICAL(垂直)Flip设置为1则翻转Bar的指向ROUNDLINERoundline显示为绕一点旋转的线段,旋转的角度对应Measure值,默认起始方向为正右,顺时针旋转。若Meter的W和H未指定,则旋转原点为Meter的X,Y坐标;若W和H已指定,则旋转原点为W,H所固定的矩形中心。Roundline相应的Measure取值应当在0.0到1.0之间,或者MaxValue与MinValue均已指定LineColor线颜色LineWidth线宽度LineLength线长度,从原点计算,无论LineStart为多少ControlLength,LengthShift若ControlLength设置为1则Measure值控制LineLength从LineLength到LineLength+LengthShiftLineStart线段起点到原点的距离ControlStart,StartShift若ControlStart设置为1则Measure值控制LineStart从LineStart到LineStart+StartShiftStartAngle起始角,顺时针,单位弧度RotationAngle当Measure取最大值时的旋转角,负值为逆时针旋转ControlAngle若ControlAngle设置为0则旋转角固定为RotationAngle,否则Measure值控制旋转角从0到RotationAngleValueRemainderMeasure值求余的除数,即Meter使用的值为Measure值对ValueRemainder求余的余数Solid设置为1则Meter将填充从StartAngle到RotationAngle的区间以绘制一个饼图4.IMAGEImage不一定必须与Measure绑定,可显示固定图像;当与Measure绑定时,会尝试显示文件名与Measure值对应的图像Image变化应用的顺序为ImageCrop->GreyScale->ImageTint->ImageFlip->ImageRotateMeasureName,MeasureName2,...Image可以使用多个MeasureImageNameImage文件名,可使用%1,%2,...代表MeasureName,MeasureName2。若ImageName未指定,Meter会尝试使用MeasureName的值为名称的png图像Path从当前皮肤文件夹起图像的路径PreserveAspectRatio设置为1则图像在缩放时将保持宽高比ScaleMargins设置当图像进行缩放时保持原比例的区域,格式为ScaleMargins=L,T,R,B,分别表示左、上、右、下不拉伸而保持原比例的区域宽度ImageCrop裁剪图像,格式为ImageCrop=X,YW,H,OriginXY是裁剪的起始坐标,WH是裁剪区域的宽和高,Origin为可选参数:1,2,3,4,5分别对应原点在左上、右上、右下、左下、中央Greyscale设置为1则图像将显示为黑白ImageTint图像染色ImageFlip图像翻转,有效参数:NONE(不翻转);HORIZONTAL(水平);VERTICAL(垂直);BOTH(旋转180度)ImageRotate图像旋转,顺时针,单位度Tile设置为1则图像将在W,H所固定的矩形内平铺(重复)ColorMatrixN颜色矩阵ImageAlpha图像透明度,0-2555.BITMAPBitmap将图像分割成相等大小的帧,每帧对应绑定的Measure的一个值。当BitmapExtend=0时Bitmap相应的Measure取值应当在0.0到1.0之间,或者MaxValue与MinValue均已指定,此时Bitmap会以每帧显示对应Measure取值的区间,例当帧数为5时第1帧在对应Measure值为0%-19%时显示,第2帧在对应Measure值为20%-39%时显示BitmapImage变化应用的顺序为GreyScale->ImageTint->ImageFlipBitmapimageBitmap使用的图像,帧的排列根据图像长宽比例自动选定BitmapFramesBitmap的总帧数BitmapTransitionFramesBitmap变换帧数,即当Measure值变化时,对应的两帧之间过渡的帧数,一个Bitmap内所有正常帧之间的变换帧数量是一致的。皮肤[Rainmeter]Section的TransitionUpdate参数决定每个变换帧显示的时间,即总的变换时间为TransitionUpdate*TransitionUpdate注意BitmapFrames总是表示总帧数,例当你需要10个用于显示数值的正常帧,变换帧数为4,则BitmapFrames应设置为50,BitmapTransitionFrames设置为4BitmapZeroFrame设置为1则第一帧只当Measure值为零时显示,否则所有帧线性对应Measure值BitmapExtend设置为1则Bitmap会尝试以帧数为进制显示数值,即若Bitmap的10帧分别代表0-9,数值会以相应的帧显示BitmapDigitsBitmap显示字符的位数,空位将以第一帧表示,只当BitmapExtend=1时有效BitmapAlignBitmap显示字符的对齐方式,有效参数:LEFT(居左);CENTER(居中);RIGHT(居右),只当BitmapExtend=1时有效Bitmapseparation当BitmapDigits大于1时两个字符间的间距,可为负数Greyscale设置为1则图像将显示为黑白imageTint图像染色imageFlip图像翻转,有效参数:NONE(不翻转);HORIZONTAL(水平);VERTICAL(垂直);BOTH(旋转180度)ColorMatrixN颜色矩阵ImageAlpha图像透明度,0-2556.ROTATORRotator显示为绕一点旋转的图像,旋转的角度对应Measure值,默认起始方向为正右,顺时针旋转。Rotator相应的Measure取值应当在0.0到1.0之间,或者MaxValue与MinValue均已指定Image变化应用的顺序为ImageCrop->GreyScale->ImageTint->ImageFlip->ImageRotateImageName旋转的图像ImageCrop裁剪图像,格式为ImageCrop=X,YW,H,OriginXY是裁剪的起始坐标,WH是裁剪区域的宽和高,Origin为可选参数:1,2,3,4,5分别对应原点在左上、右上、右下、左下、中央Greyscale设置为1则图像将显示为黑白ImageTint图像染色ImageFlip图像翻转,有效参数:NONE(不翻转);HORIZONTAL(水平);VERTICAL(垂直);BOTH(旋转180度)ImageRotate图像旋转,顺时针,单位度ColorMatrixN颜色矩阵ImageAlpha图像透明度,0-255OffsetX,OffsetY旋转原点在图像上的X,Y坐标,注意Rotator的旋转原点始终为Meter的X,Y坐标,OffsetX,OffsetY则确定旋转原点与图像的相对位置StartAngle起始角,顺时针,单位弧度RotationAngle当Measure取最大值时的旋转角,负值为逆时针旋转ValueRemainderMeasure值求余的除数,即Meter使用的值为Measure值对ValueRemainder求余的余数LINELine按时间显示绑定的Measure值的变化曲线,一个Meter可以显示多个LineLineCount曲线数量,注意其后的三个参数在表示第一条曲线时不使用数字(MeasureName,LineColoi,Scale)MeasureName,MeasureName2,...曲线使用的MeasureLineColor,LineColor2,...曲线颜色Scale,Scale2,・・.Measure值的缩放倍数,Measure值将乘以这个参数AutoScale设置为1则Meter将自动缩放以保持最大值正确显示,设置为0则Meter将根据所有Measure的Maxvalue中的最大值缩放比例LineWidth曲线宽度HorizontalLines设置为1则在背景上显示水平参考线HorizontalLineColor水平参考线颜色Flip设置为1则翻转Line的指向HISTOGRAMHistogram按时间显示绑定的Measure值的变化直方图,即填充了曲线下方区域的Line,一个Meter最多显示两个HistogarmImage变化应用的顺序为ImageCrop->GreyScale->ImageTint->ImageFlip->ImageRotateSecondaryMeasureName或MeasureName2副Histogarm使用的MeasurePrimaryColor主Histogarm颜色SecondaryColor副Histogarm颜色BothColor主副Histogarm重叠区域颜色PrimaryImage主Histogram图像,使用此参数将覆盖PrimaryColor的设置。当定义了副Histogarm的Measure后若定义PrimaryImage则必须同时定义SecondaryImage与BothImage,而非SecondaryColor与BothColorSecondaryImage副Histogram图像BothImage主副Histogarm重叠区域图像PrimaryImageCrop,SecondaryImageCrop,BothImageCrop裁剪图像,格式为ImageCrop=X,YW,H,OriginXY是裁剪的起始坐标,WH是裁剪区域的宽和高,Origin为可选参数:1,2,3,4,5分别对应原点在左上、右上、右下、左下、中央PrimaryGreyscale,SecondaryGreyscale,BothGreyscale设置为1则图像将显示为黑白PrimaryImageTint,SecondaryImageTint,BothImageTint图像染色PrimaryImageFlip,SecondaryImageFlip,BothImageFlip图像翻转,有效参数:NONE(不翻转);HORIZONTAL(水平);VERTICAL(垂直);BOTH(旋转180度)PrimaryImageRotate,SecondaryImageRotate,BothImageRotate图像旋转,顺时针,单位度PrimaryColorMatrixN,SecondaryColorMatrixN,BothColorMatrixN颜色矩阵PrimarylmageAlpha,SecondarylmageAlpha,BothlmageAlpha图像透明度,0-255AutoScale设置为1则Meter将自动缩放以保持最大值正确显示,设置为0则Meter将根据所有Measure的Maxvalue中的最大值缩放比例Flip设置为1则翻转Histogram的指向BUTTONButton不能与任何Measure绑定,自带正常、按下、悬浮三种状态以及一个触发器Buttonimage变化应用的顺序为GreyScale->ImageTint->ImageFlipButtonImageButton使用的图像,图像分为尺寸相同的三帧,帧的排列根据图像长宽比例自动选定,依次对应正常、按下、悬浮的按钮图像ButtonCommandButton按下的触发器Greyscale设置为1则图像将显示为黑白ImageTint图像染色ImageFlip图像翻转,有效参数:NONE(不翻转);HORIZONTAL(水平);VERTICAL(垂直);BOTH(旋转180度)ColorMatrixN颜色矩阵ImageAlpha图像透明度,0-255变量一、狭义变量狭义变量即Variable1■内置变量除了在第二讲介绍过的路径变量外固定的路径,在RM安装完成后就是固定的,因人而异#PROGRAMDRIVE#

RM安装盘符,例:"D:"#PROGRAMPATH#RM安装路径,例:"D:\ProgramFiles\Rainmeter\"#SETTINGSPATH#RM配置文件的路径,例:"D:\AppData\Roaming\Rainmeter\"#SKINSPATH#RM皮肤文件的路径,例:"D:\Documents\Rainmeter\Skins\"#PLUGINSPATH#RM插件的路径,例:"D:\ProgramFiles\Rainmeter\Plugins\"#ADDONSPATH#RM附加组件的路径,例:"D:\ProgramFiles\Rainmeter\Addons\"变化的路径,根据调用位置不同而异为举例,还是设Skins有以下两个文件Skins\Folder1\Skin1.iniSkins\Folder1\Folder2\Skin2.ini#CURRENTPATH#当前.ini文件的路径对于Skin1.ini:"D:\Documents\Rainmeter\Skins\Folder1\"对于Skin2.ini:"D:\Documents\Rainmeter\Skins\Folder1\Folder2\"#CURRENTFILE#当前.ini文件的名称对于Skin1.ini:"Skin1.ini"对于Skin2.ini:"Skin2.ini"#CURRENTCONFIG#当前.ini文件的Config对于Skin1.ini:"Folder1"对于Skin2.ini:"Folder1\Folder2"#ROOTCONFIGPATH#当前.ini文件到Skins下一级子文件夹的完整路径对于Skin1.ini:"D:\Documents\Rainmeter\Skins\Folder1\"对于Skin2.ini:"D:\Documents\Rainmeter\Skins\Folder1\"RM还有以下内置变量:#CRLF#换行#CURRENTSECTION#引用位置的[Section]名,如果在[Variables]下使用,不管相应的变量在何处引用,都会返回"Variables"#WORKAREAX#工作区X坐标#WORKAREAY#工作区Y坐标#WORKAREAWIDTH#工作区宽度

#WORKAREAHEIGHT#工作区高度#SCREENAREAWIDTH#屏幕宽度#SCREENAREAHEIGHT#屏幕高度以下4个变量内定属性就为Dynamic(动态的),使用时必须在对应Measure或Meter中添加"DynamicVariables=1"#CURRENTCONFIGWIDTH#当前皮肤宽度#CURRENTCONFIGHEIGHT#当前皮肤高度#CURRENTCONFIGX#当前皮肤X坐标#CURRENTCONFIGY#当前皮肤Y坐标2.自定义变量在Section[Variables]声明VariableName=VariableValue引用时用#VariableName#注意RM在识别变量名时为从左到右一次性识别,如有A=XBX=Z则"#b#A##"只能识别为"#BX#"而非"Z"Variable的使用方法除了简单替代外,还可以通过!Bang指令"!SetVariable","!SetVariableGroup"来改变变量的值,即DynamicVariable(动态变

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论