RM高阶教程.docx

上传人:b****3 文档编号:26914655 上传时间:2023-06-24 格式:DOCX 页数:54 大小:38.72KB
下载 相关 举报
RM高阶教程.docx_第1页
第1页 / 共54页
RM高阶教程.docx_第2页
第2页 / 共54页
RM高阶教程.docx_第3页
第3页 / 共54页
RM高阶教程.docx_第4页
第4页 / 共54页
RM高阶教程.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

RM高阶教程.docx

《RM高阶教程.docx》由会员分享,可在线阅读,更多相关《RM高阶教程.docx(54页珍藏版)》请在冰豆网上搜索。

RM高阶教程.docx

RM高阶教程

写在开篇之前:

Rainmeter(以下简称RM)作为一个基于代码而非图形化界面的开放式桌面美化软件,绝大部分内容都是来自于默默奉献的非盈利制作者(据我所知只有Gnometer、Enigma、ABP是RM官方开发者制作的套装)。

一个高素质的RM皮肤制作者群体不仅为推广使用RM提供丰富的内容,反过来也能促进RM在新版本中优化设计、开发更强的功能,可以说是RM的中坚力量

[XANCI的RM高级教程]系列教程面向RM皮肤制作者,以及希望深入了解RM并成为皮肤制作者的广大RM使用者。

由于本教程不会提供关于"RM如何使用"之类问题的解答,建议新手还是先看看本版的其他入门教程

本教程基于最新版本的Rainmeter2.1.0r959英文版,并会随新版本的推出同步更新

中文版虽然汉化了程序界面,但是皮肤代码的编辑仍然是英文(RM在可预见的将来不会将代码部分进行本地化),习惯使用英文指代许多RM名词、术语将为理解使用和编辑RM皮肤带来方便,本系列教程在每个英文术语第一次出现时附加翻译,后面则不再翻译

另外要提到的一个重要的参考是官方的Manual(使用手册,或称帮助文档)

此手册目前汉化工作还在进行中,最新英文版本地址如下

当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启动时,会先加载Rainmeter.ini,然后启动Rainmeter.ini中记录的皮肤配置文件,这些都加载到电脑内存当中,任何对于Rainmeter调用的文件的修改都需要Refresh(刷新,对应单独的皮肤.ini文件)或者RefreshAll(全部刷新,同时会更新目录)

.ini皮肤文件除去文件头外,主体分为两部分:

Measure(度量)和Meter(仪表),前者用于获取数据,后者决定内容的显示方式

四、RM编辑、调试工具

对于RM使用的.ini和.inc等文件,用系统自带的记事本就可以修改,另外RM还提供了2个工具

1.RainManager

直接左键点击任务栏RM的托盘图标,或者在RM右键菜单[注2]中点击最上面的Manage(管理)就可打开

Skins标签页用于管理加载、设置皮肤在桌面的显示方式和行为,不再累述;Themes标签页用于管理主题,但过去的RM主题管理器曾经有各种各样的问题和BUG,建议在有关主题的操作中从资源管理器和记事本进行创建、修改主题文件;第三个Settings标签页不常用

2.About

RM右键菜单中Manage下面,也就本篇开头查看版本的地方

Log(日志)标签页用于记录RM的运行状态,皮肤工作不正常时这里也会显示报错信息;Measures标签页用于显示当前加载的各个皮肤中的Measure值;Plugins标签页用于显示当前加载的插件,不重要;最后一个就是Version标签页

五、其他RM编辑系统

所谓RM代码,指RM自身调用的.ini和.inc文件,也是大部分编辑工作的对象,但是只会写RM代码还是不够的,下面内容虽然不在本教程涉及范围内,还是希望大家尽量学习、掌握

1.图像处理软件

常用的PhotoShop足已,用以绘制皮肤调用的图像,通常使用带Alpha(透明)通道的.png格式

2.RegularExpression(正则表达式)

RM使用的一种查找和替换文本的表示法,最常见于调用WebParser.dll插件的Measure(RegExp=),如天气、RSS浏览器等,大部分此类皮肤的编辑只需参考同类皮肤;其次是一些Measure中复杂的Substitute(替换),不常见

3.LuaScript(Lua脚本)

我们不得不承认RM自身的代码虽然还在不断完善中,但功能是非常有限的,所以有些高级功能的实现需要调用Lua脚本,后面有关Measure的教程会简单提到如何调用Lua脚本

注1:

AppData\Roaming\Rainmeter\下的Rainmeter.ini与任意主题文件夹下的Rainmeter.thm都称之为RM配置文件,记录使用的皮肤和皮肤显示行为,加载任一Rainmeter.thm都会覆盖当前的Rainmeter.ini

注2:

右键点击RM任务栏托盘图标出现的菜单称之为RM右键菜单,右键点击任意皮肤出现的菜单中下方的Rainmeter里才是RM右键菜单

预告

按计划的教程顺序之后将讲解RM的路径系统、!

Bang(指令)系统,再回头讲解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.ini

Skins\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\"

2.变化的路径,根据调用位置不同而异

为举例,还是设Skins有以下两个文件

Skins\Folder1\Skin1.ini

Skins\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指令

一、介绍

!

Bang指令(以下简称!

Bang)是RM用来调控RM内部参数、执行外部命令的指令,跟随在触发器之后

在RM2.1以前的版本中,完整的写法例如刷新当前皮肤:

!

RainmeterRefresh

从2.1版本起,指令开头的"Rainmeter"可以省略,这个!

Bang改为!

Refresh

当然老版本皮肤中带有Rainmeter的!

Bang同样也能被识别

本讲内容主要带大家大致了解RM中有哪些!

Bang触发器,以及!

Bang有哪些功能,特定!

Bang的使用方法在后面对应章节会有详细说明

二、触发器

1.[Rainmeter]特有触发器

皮肤.ini文件头[Rainmeter]区内特有的触发器只有一个

OnRefreshAction=

这个触发器会在皮肤第一次加载、以及每次刷新时触发

[Rainmeter]下还可以使用MouseActions(鼠标动作),见下文

2.[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,但每个触发器只能出现一次,即使使用不同判断值的同一触发器也不能正确被识别

3.[Meter]特有触发器

各类Meter中只有Button(按钮)Meter自带一个触发器

ButtonCommand=

当按下Button时触发

同时各类Meter下也可使用MouseActions

4.MouseActions

MouseActions是一系列识别鼠标动作的触发器,可位于.ini皮肤文件头[Rainmeter]下,对整个皮肤生效,也可位于单独[Meter]下,只对该Meter生效

LeftMouseDownAction=

左键按下时触发,使用这个触发器同时会使皮肤的拖动失效

RightMouseDownAction=

右键按下时触发,使用这个触发器同时会使皮肤的右键菜单失效

MiddleMouseDownAction=

中键按下时触发

LeftMouseUpAction=

左键松开时触发

RightMouseUpAction=

右键松开时触发,使用这个触发器同时会使皮肤的右键菜单失效

MiddleMouseUpAction=

中键松开时触发

LeftMouseDoubleClickAction=

左键双击时触发

RightMouseDoubleClickAction=

右键双击时触发,使用这个触发器同时会使皮肤的右键菜单失效

MiddleMouseDoubleClickAction=

中键双击时触发

MouseOverAction=

鼠标移至上方时触发

MouseLeaveAction=

鼠标离开上方时触发

MouseActionCursor

伴随MouseActions使用的一个参数,默认为1,即鼠标移至有MouseAction区域上方时将变为点击样式,0则为不发生变化

当MouseActionCursor=0在文件头[Rainmeter]下使用时对整个皮肤生效,但在特定[Meter]下加上MouseActionCursor=1可覆盖全局设定

当你在包括有MouseActions或ButtonCommand的Meter或Button上方有另外一个Meter时,位于上方的Meter必须设置MouseActionCursor=0才可使下方的触发器生效,即使上方的Meter没有设置MouseActions

MouseActions使用时还需注意

1)如果皮肤被设置为Clickthrough,整个皮肤上的任何MouseActions都不会触发

2)Left/Right/MiddleMouseDoubleClickAction后面如果没有!

Bang,会转而执行对应的Left/Right/MiddleMouseDownAction(如果有的话)

三、!

Bangs

以下说明格式为

!

Bang [必须参数](可选参数)

1.!

Execute

!

Execute是RM中使用最多、功能最强的!

Bang,主要有两种使用方法

1)当有多个!

Bang需要同时执行时使用,子!

Bang用"["、"]"分隔

!

Execute[!

Bang1][!

Bang2][!

Bang3]

2)执行外部程序,可以包括执行参数,注意被执行的路径前后必须有引号"

!

Execute["C:

\Windows\Notepad.exe"]

打开记事本

!

Execute["C:

\Windows\Notepad.exe""#CURRENTPATH##CURRENTFILE#"]

使用记事本打开当前.ini

2.RM程序相关!

Bangs

!

About(TabName)

打开RM右键菜单中的About窗口

!

Manage(TabName)

打开RM右键菜单中的Manage窗口,即RainmeterManager

!

LsBoxHook[Config]

调用LiteSteplsBox,不常见

!

ResetStats

将#SETTINGSPATH#Rainmeter.stats中的数据(网络流量统计)清零

!

RefreshApp

相当于RM右键菜单中的Refrashall

!

Quit

退出RM

3.变量操作类!

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1