rainmeter继续……

昨日起,某雷的系统时间改为东京区……
为了以后方便应对minori那种BT的时区验证……
然后偶就把系统时间显示从任务栏上删掉了……
改写了Skin in DT名無しさん的Toheart2的时钟,
扔在桌面代替右下角系统时间显示……
当然,这个是北京区的了-v-

正常状态:konomi1

双击后:konomi2
(这地方在细节上优化了不少,原作品是无论如何靠不到边的……)

为了尊重原作者,无论是改写前的原skin还是改写后的skin,
某雷可都是不会私下胡乱散播的……
不过确实有几句想说的话想说一下,

名無しさん的原ini中,旋转部分实在是写得相当好
算坐标算得恰到好处,令我相当钦佩。

不知是不是名無しさん书写皮肤时面对的版本是0.12的缘故,
对于现在的0.14版的rainmeter来说,
有很多代码显得多余……

同一张图片用两个meter,[Mini_Konomi_Img1]和[Mini_Konomi_Img2]
为的只是点击时不断替换两个meter,
分别执行不同的bang以达到切换右边的[Konomi_Img]显示、隐藏与否的效果
但实际上一个!RainmeterToggleMeter足以达到此效果,完全不用定义两个meter……

另外,png图片中以透明填充空白……这种做法实在是很令我orz
如此一来,不但图片大小增加,
而且拖动时也无法将时钟拖动到窗口边缘(透明像素也要屏幕空间的缘故)
以PS裁减掉多余的空白,重新计算了坐标
这样无论代码还是资源上就精简多了……

[AnalogTime]measure定义两遍
还有把hidden写成hydden的低级错误……
只能说是小bug吧……

之后的改写还有就是定义了时区为+8.0,
还添加了一个显示时间的字符串方便自己确认时间……
不过这只是一个小小的中间过程而已,既没有画专用的显示时间的背景框图,
也没有对显示出来的字体、字号进行处理

按我的设想,这个钟应该可以报时,连报时用的声音资源都准备好了……
以format%H,%M的时间来直接转成字符串变量,作为文件名从外界读取.wav文件播放
这个设想我认为没什么问题,可是在实现上却遇到了巨大的难题……

PLAY命令行无法使用…… 完全不知道它后面应该跟什么……
文件名、相对路径、绝对路径,连激活ini时那种特殊的路径+文件名写法我都试过了……
都不行,行的时候就是发出系统警告的声音……很郁闷……

为查找PLAY命令行的用法,我查了很多地方……
查到了No Titleさん的blog……可惜还得用代理,卡得要死
No Titleさん似乎写了很多rainmeter的插件,可惜我无缘得见……

终于,在某雷自己的探索之下,
PLAY的用法以及字符串变量、字符串常量的代入法都研究出来了
现在的conami钟具有报时功能了。
虽然目前仅仅是靠点击左键报时,
但是通过那几条还没用过trafficAction之类的语句,还是很容易实现整点报时的XD
最后偶要实现的还有订铃功能-v-

可惜没有控制台啊……什么更改都要到ini里自己手动写,麻烦死了……

最后写点小记:Skin in DT上面下东西是有次数限制的,
但是这个限制也只不过是针对正常点击提交的网址进行验证而已……
直接用转址后的路径下载文件完全可行……
转址后的目录都一样,文件名各有不同而已

大概是为了防止别人利用这种bug吧,
Skin in DT做了两道防范措施
第一道是Skin发布页面不能查看源代码(点击无效)
第二道是文件名除了编号外后面跟上一串随机数字。

前一道在各大HTTP下载器的存在下根本可以54……
只要从外界下载一个可以下载的Skin,转址后的地址是很容易看到的
至于第二道防线,嘿嘿,你难得住别人难不住计算机系的某雷
写过程序的人应该知道,任何随机数的产生几乎都跟系统时间有关,
随机串基本都是用时间经过加密啊、压缩啊、诸如此类的处理之后得到。

而Skin in DT这里,根本没加处理就直接把时间添在后面当文件名,
它的论坛上又有显示发帖时间,偶还客气什么?
取来论坛记录好的年月日时分,写个小程序算一下时间值,
文件名后缀的随机序列大概就在这个附近了
然后利用nettransport的批量下载功能,穷举后几位,从第一秒算到第60秒即可
好了,轻而易举的……限量发行的0144入手-v-