现在的位置: 首页 > 综合 > 正文

掌心万年历语法

2011年02月16日 ⁄ 综合 ⁄ 共 7226字 ⁄ 字号 评论关闭

掌心万年历皮肤为HandCalendar\TodaySkins目录下的*.ini文件(ASCII格式的文本文件)
文件行首如果是#,表示该行是注释行。

皮肤分为以下几个部分:
Name,
Refresh,
DrawCalendar,
DrawPic,
DrawString,
DrawStringEx,
DrawClock,
SetFestivalFont,
SetFestivalRect,
ClickAction,
Height,
OnScreenNormal,
OnScreenLandscape

1) Name表示皮肤名字,参数是名称,比如:
Name=显示LCD时钟(居右)
表示该皮肤的名字是"显示LCD时钟(居右)"

2) Refresh表示更新频率,参数是:(0-每天, 1-每分钟, 2-每秒, 其他数值表示多少秒),比如:
Refresh=2
表示该皮肤的更新频率是"每秒"(注意每秒更新可能会降低您的电池使用时间)
Refresh=15
表示该皮肤的更新频率是每15秒刷新一次
建议:在有秒钟显示的皮肤里使用2,有分钟显示的皮肤里使用1,其他均使用0

3) DrawCalendar表示显示月历,参数是:(上top像素,左left像素,周六是否节假日,周一为每周开始)
DrawCalendar=4,304,1,0
表示该皮肤在(4,304)坐标显示月历,周六是节假日显示为红色,周一不是每周开始(周日是)

4) DrawPic表示显示图片,参数是:(上top, 左left, 透明色#000000-#FFFFFF, 图片),比如:
DrawPic=2,2,#000000,clock16.bmp
表示该皮肤在(2,2)坐标显示图片clock16.bmp,且把颜色#000000作为透明色
(*注1:对PNG图片,透明色参数无效)
(*注2:掌心万年历暂时只支持32位色的PNG图片)
(*注3:文件名可以使用系统变量)

5) DrawString表示显示字符串,参数是 (字体大小,上top像素,左left像素,字符串),比如:
DrawString=9,5,28,{SY1}-{SM}-{SD}({WD}) {JQ}
表示该皮肤在(5,28)坐标显示字体大小为9的字符串"{SY1}-{SM}-{SD}({WD}) {JQ}",该字符串会被系统自动替换为相应的数据。
(*注1:字符串可以使用系统变量)

6) DrawStringEx表示显示格式化字符串,参数是 (大小,上top,左left,宽度,排版(0-居左, 1-居中, 2-居右),颜色(#000000-#FFFFFF),粗细(0-1000,400是普通,700是粗体),字符串),比如:
DrawStringEx=9,96,20,200,1,#00FF00,700,居中粗体-电池剩余{BatteryPercent}%
表示该皮肤在(96,20)坐标,宽度200,居中显示字体大小为9的绿色(#00FF00)字符串"居中粗体-电池剩余{BatteryPercent}%",该字符串会被系统自动替换为相应的数据。
(*注1:字符串可以使用系统变量)

7) DrawClock表示显示指针时钟,参数是 (上top,左left,指针时钟图片目录),比如:
DrawClock=10,0,VistaClock
表示该皮肤在(10,0)坐标,显示指针时钟,图片目录为TodaySkins\VistaClock
系统将会加载并顺序绘制以下6个文件(如果有文件不存在就忽略,注意 face.png 是必须的文件)
a) face.png (表盘)
b) hour.png (时针)
c) minute.png (分针)
d) second.png (秒针)
e) dot.png (最外层的圆心)
f) hilight.png (高光)

8) SetFestivalFont表示设置节日信息显示的字体和颜色,参数是 (大小, 颜色[#000000-#FFFFFF, 0表示使用系统颜色])
SetFestivalFont=9,#0000FF
表示该皮肤使用9号字体,颜色为#0000FF(蓝色)显示节日信息
SetFestivalFont=11,0
表示该皮肤使用11号字体,使用系统颜色显示节日信息
(*注1:默认为9号字体,系统颜色显示节日信息)

9) SetFestivalRect表示设置节日信息显示区域,参数是 (上top[-1表示使用默认值], 左left, 宽度width)
SetFestivalRect=200,10,220
表示该皮肤在top=200的位置显示节日信息,左边坐标10,宽度220
SetFestivalFont=-1,0,120
表示该皮肤在默认top的位置显示节日信息,左边坐标0,宽度120

10) Height表示设置皮肤为固定高度,参数是高度像素值
Height=100
表示该皮肤在今日桌面显示的高度是固定的100个像素

11) ClickAction表示在某个区域接收到用户点击后触发的事件,参数是 (上Top, 左Left, 宽度Width, 高度Height, 事件类型[0-启动程序,1-打开新皮肤,2-打开设置窗口,3-刷新今日]), 事件字符串(启动的程序路径 或者 打开的皮肤文件名,对于2,3该项无效)
ClickAction=98,4,72,80,0,{MainDir}\HandCalendar.exe
表示该皮肤在区域(98,4,72,80)接收到用户点击以后,打开掌心万年历主程序
ClickAction=16,80,72,80,0,\Windows\tmail.exe -transport "SMS"
表示该皮肤在区域(16,80,72,80)接收到用户点击以后,打开短消息
ClickAction=16,160,72,80,1,skin2.ini
表示该皮肤在区域(16,160,72,80)接收到用户点击以后,更换为皮肤skin2.ini
(*注1:ClickAction支持键盘操作)
(*注2:在ClickAction区域不能长按弹出设置菜单)
(*注3:ClickAction命令支持系统变量)
(*注4:打开的程序支持快捷方式,比如\Windows\ABC.LNK)

12)OnScreenNormal表示当屏幕竖屏的时候更换的皮肤,参数是皮肤文件名
OnScreenNormal=test.ini
表示该皮肤在屏幕竖屏的时候更换为test.ini皮肤

13)OnScreenLandscape表示当屏幕横屏的时候更换的皮肤,参数是皮肤文件名
OnScreenLandscape=test_landscape.ini
表示该皮肤在屏幕竖屏的时候更换为test_landscape.ini皮肤

V2.8 正式版 支持的系统变量有:

【公历】
# {SY} - 公历年,返回值: 2007
# {SM} - 公历月,返回值: 1,2,...,12
# {SD} - 公历日,返回值: 1,2,...,31
# {SY1} - 公历年(2位数),返回值: 99, 07
# {SM_0} - 公历月十位,返回值: 0,1
# {SM_1} - 公历月个位,返回值: 0,1,2,...,9
# {SD_0} - 公历日的十位,返回值: 0,1,2,3
# {SD_1} - 公历日的个位,返回值: 0,1,2,...,9
# {SY_0} - 四位年的第一位数字,返回值:0,1,2
# {SY_1} - 四位年的第二位数字,返回值:0,1,2,...9
# {SY_2} - 四位年的第三位数字,返回值:0,1,2,...9
# {SY_3} - 四位年的第四位数字,返回值:0,1,2,...9
# {SM2} - 公历月,返回值: 01,02,...,12
# {SD2} - 公历日,返回值: 01,02,...,31
# {WY:参数} - 今天是今年第几周,返回值:1,2,3,....52,参数为需要减去的修正值,比如开学在第12周,可以写"距离开学还有{WY:12}周"
# {WD} - 星期几,返回值: 一,二,...,日
# {WD2} - 星期几,返回值: 0,1,2,3,...,6 (0是周日)
# {XZ} - 星座文字,返回值: 摩羯, 宝瓶, ..., 射手
# {XZ2} - 星座编号,返回值: 0-摩羯, 1-水瓶, ..., 12-射手

【农历】
# {SX} - 生肖,返回值: 鸡,狗,...,羊
# {LY} - 农历年,返回值: 2006,2007
# {LM} - 农历月,返回值: 一,二,...,十,腊,东
# {LD} - 农历日,返回值: 一,二,...,三十
# {GY} - 干支年,返回值: 甲子年
# {GM} - 干支月,返回值: 甲子月
# {GD} - 干支日,返回值: 甲子日
# {LM2} - 农历月,返回值: 01,02,03,...,12
# {LD2} - 农历日,返回值: 01,02,03,...30
# {LD2_0} - 农历日十位,返回值: 0,1,2,3
# {LD2_1} - 农历日个位,返回值: 0,1,2,...,9
# {LD3_0} - 农历日汉字的第一位,返回值: 初,十,廿,三
# {LD3_1} - 农历日汉字的第二位,返回值: 一,二,三,...,十
# {LM3} - 农历月,返回值: 一,二,...,十,十一,十二
# {JQ} - 农历节气(不带时间),返回值: 立春
# {JT} - 农历节气(带时间),返回值: 立春03:30
# {RY} - 农历闰月,返回值: 闰 / (空白)
# {RY2} - 农历是否闰月,返回值: 1/0
# {SC} - 农历时辰,返回值: 子/丑/.../亥
# {SC2} - 农历时辰,返回值: 甲子/甲丑/.../癸亥
# {SJSF} - 三九三伏入梅出梅,返回值: 入梅/出梅/初伏第2天/三九第9天/...

【时钟】
# {SH} - 公历时(24小时制),返回值: 0,1,...,23
# {SH12} - 公历时(12小时制),返回值: 1,2,...,12
# {SF} - 公历分,返回值: 0,1,...,59
# {SS} - 公历秒,返回值: 0,1,...,59
# {SH12_0} - 公历12小时制十位,返回值: 0,1
# {SH12_1} - 公历12小时制个位,返回值: 0,1,..,9
# {SH0} - 公历24时十位,返回值: 0,1,2
# {SH1} - 公历24时个位,返回值: 0,1,..,9
# {SF0} - 公历分十位,返回值: 0,1,..,5
# {SF1} - 公历分个位,返回值: 0,1,..,9
# {SS0} - 公历秒十位,返回值: 0,1,..,5
# {SS1} - 公历秒个位,返回值: 0,1,..,9
# {APM} - AM/PM,返回值: am,pm
# {APM_CHS} - AM/PM中文,返回值: 上午/下午
# {IsAM} - 当前是否AM,返回值: 0,1
# {IsPM} - 当前是否PM,返回值: 0,1
# {HasAlarm} - 是否有闹钟,返回值: 0,1
# {NextAppointment} - 下一个日程安排(WM5之后支持)

【系统资源】
# {MemRestMB} - 内存剩余MB(带一位小数),返回值: 0.0,1.9,...
# {MemRestPercent} - 内存剩余比,返回值: 0,1,...,99,100
# {MemUsedMB} - 内存使用MB(带一位小数),返回值: 0.0,0.1,...
# {MemUsedPercent} - 内存使用百分比,返回值: 0,1,...,99,100
# {BatteryPercent} - 电源剩余百分比,返回值: 0,1,...,99,100
# {BatteryLevel} - 电源剩余量(10个等级),返回值: 1,2,3,4,5,6,7,8,9,10
# {BatteryFlag} - 电池状态,返回值: 0-正在充电, 1-电量正常, 2-电量低, 3-电量非常低, 4-没有电池, 5-未知状态
# {BatteryFlagName} - 电池状态,返回值: 正在充电/电量正常/电量低/电量非常低/没有电池/未知状态
# {Landscape} - 屏幕是横向还是纵向,返回值: 0-纵向屏幕/1-横向屏幕
# {ACPower} - 电池是否在充电,返回值: 0-没有充电, 1-正在充电
# {StoreRestMB} - RAM存储剩余MB(带一位小数),返回值: 0.0,1.9,...
# {StoreRestPercent} - RAM存储剩余比,返回值: 0,1,...,99,100
# {StoreUsedMB} - RAM存储使用MB(带一位小数),返回值: 0.0,0.1,...
# {StoreUsedPercent} - RAM存储使用百分比,返回值: 0,1,...,99,100
# {BTMode} - 蓝牙状态,返回值: 0(关闭或者不存在),1(打开),2(可发现)

【电话相关】
# {UnreadSMS} - 未读短信数量(WM5之后支持),返回值: 0,1,2...
# {MissedCall} - 漏接电话数量(WM5之后支持),返回值: 0,1,2...
# {UnreadSMS2} - 是否有未读短信(WM5之后支持),返回值: 0,1
# {MissedCall2} - 是否有漏接电话(WM5之后支持),返回值: 0,1
# {Signal} - 电话信号强度(WM5之后支持),返回值: 0,1,2...,100
# {SignalLevel} - 电话信号强度等级(WM5之后支持),返回值: 0,1,2...,10
# {Operator} - 电话运营商(WM5之后支持),返回值: 中国移动,中国联通,...
# {UnreadMMS} - 未读彩信数量(WM5之后支持),返回值: 0,1,2...
# {UnreadMMS2} - 是否有彩信短信(WM5之后支持),返回值: 0,1

【其他】
# {01} - 0/1奇偶器(第一次调用返回0,下次调用返回1),返回值: 0,1
# {Colone01} - 冒号,返回值: : / (空白)
# {S1} - 1秒奇偶器(奇数秒返回1,偶数秒返回0),返回值: 0,1
# {S10} - 10秒奇偶器(秒的十位是奇数秒返回1,秒的十位是偶数秒返回0),返回值: 0,1
# {MainDir} - 返回掌心万年历程序所在主目录
# {SkinDir} - 返回掌心万年历当前今日皮肤所在主目录
# {Registry:注册表路径} - 显示注册表内容,比如 {Registry:HKEY_CURRENT_USER\System\State\Tasks\Active}

关于QVGA皮肤转VGA皮肤的制作技巧:
字体大小不需要变化,字体的显示位置乘以2就好了。
举例来说:
QVGA是DrawString=9,2,2,Hello world!
VGA对应的就是DrawString=9,4,4,Hello world!

如果在您制作自己的皮肤过程中,需要我们提供更多的系统变量,请告诉我们,谢谢!

掌心万年历皮肤下载,不断整理中:
http://www.pda01.com/bbs/viewthread.php?tid=7

色彩RGB表:
http://www.pda01.com/blog/rgb.htm

常用打开程序列表:
      # 设置--密码 \Windows\ctlpnl.exe cplmain.cpl,1,0
      # 设置--主人信息 \Windows\ctlpnl.exe cplmain.cpl,2,0
      # 设置--电源 \Windows\ctlpnl.exe cplmain.cpl,3,0
      # 设置--内存 \Windows\ctlpnl.exe cplmain.cpl,4,0
      # 设置--关于 \Windows\ctlpnl.exe cplmain.cpl,5,0
      # 设置--背光 \Windows\ctlpnl.exe cplmain.cpl,6,0
      # 设置--调整屏幕 \Windows\ctlpnl.exe cplmain.cpl,7,0
      # 设置--输入 \Windows\ctlpnl.exe cplmain.cpl,8,0
      # 设置--声音和提醒 \Windows\ctlpnl.exe cplmain.cpl,9,0
      # 设置--删除程序 \Windows\ctlpnl.exe cplmain.cpl,10,0
      # 设置--菜单 \Windows\ctlpnl.exe cplmain.cpl,11,0
      # 设置--按键 \Windows\ctlpnl.exe cplmain.cpl,12,0
      # 设置--今日 \Windows\ctlpnl.exe cplmain.cpl,13,0
      # 设置--无限数据交换 \Windows\ctlpnl.exe cplmain.cpl,15,0
      # 设置--时钟 \Windows\ctlpnl.exe cplmain.cpl,16,0
      # 设置--配置网络适配器 \Windows\ctlpnl.exe cplmain.cpl,17,0
      # 设置--区域设置 \Windows\ctlpnl.exe cplmain.cpl,18,0
      # 设置--连接 \Windows\ctlpnl.exe cplmain.cpl,19,0
      # 设置--证书管理 \Windows\ctlpnl.exe cplmain.cpl,22,0
      # 设置--蓝牙 \Windows\ctlpnl.exe cplmain.cpl,23,0
      # 电话 \Windows\cprog.exe
      # 短信 \Windows\tmail.exe -transport "SMS"
      # 新短信 \Windows\tmail.exe -transport "SMS" -to " "
      # 联系人 \Windows\poutlook.exe contacts
      # 任务 \Windows\poutlook.exe tasks
      # 媒体播放器 \Windows\wmplayer.exe
      # 资源管理器 \Windows\fexplore.exe
      # 时钟 \Windows\clock.exe
      # 照相机 \Windows\pimg.exe -camerakey
      # 计算器 \Windows\calc.exe

抱歉!评论已关闭.