发新话题
打印

Kaiser桌面美化教程(完全版)--更新黑客篇:移动无法移动的今日插件顺序

本主题由 tinni 于 2008-5-3 15:59 设置高亮
很好,狂顶

TOP

好贴啊,顶你

TOP

4 rlToday & MortScript

引言:前面介绍了HTC HOME今日插件的修改,安装新的插件,也许有机友想自己来做一个桌面,不是一切讲究DIY精神吗。这里介绍rlToday和强大的PPC解释程序MortScript(作者原话:interpreter)。rlToday同样是一个今日插件,本身并不复杂。它可以从头开始自定义桌面。
        其实rlToday对桌面的美化功能有限,要实现复杂的应用如:桌面切换、分页,横屏控制都要通过MortScript。所以与其说rlToday是一个桌面美化工具,不如说它更侧重于应用。为什么这里要介绍rlToday呢?其他的软件如PPX、WDA也可以做到桌面的自定义。rlToday与它们的区别在于,PPXWDA建立的桌面,不管简单还是复杂,都会一次调入内存中,不管用页也好不分页也好,占用的是内存。rlToday占用的是存贮空间,每次切换都是重新载入一个Skin.xml文件,对内存占用少是它的优点。果真如此吗?就我个人感觉来说,rlToday不占内存,牺牲的是它本身的速度而不影响其他程序运行(即桌面切换慢),而PPX、WDA牺牲的是内存,自已运行快,但系统整体运行速度不佳。Spb Mobile Shell和后者也是一样的。从桌面制作的便捷性来说,rlToday还不如WDA或者PPX。但使用rlToday让我们有一个学习机会,去学会怎么控制系统,真正了解桌面程序的核心。

闲话少说,言归正题:

    1)下载:说是最新版,但也是去年4月份了。对于rlToday这样需要自己写东东的软件我一般用原版。
   
    2)安装:解压后是一个CAB文件,才300K,单击安装,建议安装在手机上。
    3)运行:安装后在“今日”设置里有rlToday插件,勾选就可以了。默认介面如图。长按桌面在弹出的菜单中选“options”进入设置介面。General页是可以选择的皮肤(现在只有一个default);Times页是时区,放时钟时会用到,有几个时区就可以放几个时钟;Apps页面是桌面的快捷按钮,可以增删,以后会讲到如何用;Calenderd页是设置桌面日历表头星期的表示方法,如下左图中 “M”表示星期一。
         
    4)工作机制:安装rlToday后(默认在手机里),在—— 我的设备/Program Files/rlToday/ ——目录下只有两个文件(如下图左),rlToday.dll就是今日插件的主程序文件,rlToday.ini是配置文件,用词本打开可以发现,在Options里面的更改记录在这个文件中,可直接用记事本更改。[General]项下面是默认的皮肤文件夹名称,当在这个目录下新建一个文件夹,就会在设置介面里的General页里看到,并可以选择。我已经有许多皮肤了,所以有多个文件夹。rlToday的工作机制便是读取INI文件,进入General节定义的文件夹,再读取该文件夹下的skin.xml文件执行,就这么简单。
         
   
    5)Skin.xml文件解析,较长,小心头昏。注释中兰色表示标签,橙色表示属性
引用:
<?xml version="1.0" ?>
<!-- today标签,其他内容都在此标签内,height 定义插件的高度-->      
<today height="235" refresh="100">
        <!--Image标签,x,y定义图片的位置。source定义文件位置-->   
        <Image x="5" y="5" source="bg.png" />
        <!-- AnalogClock标签(模拟时钟),可放多个,timezone引用rlTodady.ini文件中定义的时区,clockface定义时钟所用的图片文件位置-->
        <AnalogClock timezone="0" x="9" y="9" clockface="clockface.png" />

        <Image x="85" y="5" source="bg.png" />
        <Image x="90" y="25" source="line.png" />
        <!-- Date标签(日期),format定义格式,color定义RGB色彩,Font标签定义字体和大小以及格式(加粗、倾斜),Onclick标签定义单击时执行文件-->
        <Date x="120" y="10" format="MMMM" Alignment="Center" color="RGB(160, 160, 160)">
                <Font size="12" weight="bold" font="Tahoma" />
                <OnClick File="\Windows\Calendar.exe" />
        </Date>
        <Date x="120" y="30" format="d" Alignment="Center" color="RGB(230, 230, 230)">
                <Font size="20" weight="bold" font="Tahoma" />
                <OnClick File="\Windows\Calendar.exe" />
        </Date>
        <Date x="120" y="55" format="ddd" Alignment="Center" color="RGB(160, 160, 160)">
                <Font size="10" weight="bold" font="Tahoma" />
                <OnClick File="\Windows\Calendar.exe" />
        </Date>

        <Image x="165" y="5" source="bg.png" />
        <!-- CalendarHeader标签,offset定义相对当前月份偏移量,-1为前一个月,0为当前,1为下一个月-->
        <CalendarHeader x="200" y="7" format="MMM yyyy" offset="-1" color="RGB(230, 230, 230)" Alignment="Center">
                <Font size="9" weight="bold" font="Tahoma" />
                <OnClick File="\Windows\Calendar.exe" />
        </CalendarHeader>
        <!-- Calendar标签,saturdaycolor、sundaycolor分别定义星期六、天的颜色-->
        <Calendar x="167" y="19" rasterx="9" rastery="8" offset="-1" color="RGB(230, 230, 230)" saturdaycolor="RGB(0, 0, 230)" sundaycolor="RGB(230, 0, 0)">
                <Font size="7" font="Tahoma" />
                <OnClick File="\Windows\Calendar.exe" />
        </Calendar>
        
        <Image x="165" y="85" source="bg.png" />
        <CalendarHeader x="200" y="87" format="MMM yyyy" color="RGB(230, 230, 230)" Alignment="Center">
                <Font size="9" weight="bold" font="Tahoma" />
                <OnClick File="\Windows\Calendar.exe" />
        </CalendarHeader>
        <Calendar x="167" y="99" rasterx="9" rastery="8" color="RGB(230, 230, 230)" saturdaycolor="RGB(0, 0, 230)" sundaycolor="RGB(230, 0, 0)" todayimage="tm.png">
                <Font size="7" font="Tahoma" />
                <OnClick File="\Windows\Calendar.exe" />
        </Calendar>
        ...         <!-- 省略1个CalendarHeader、Calendar标签-->
               
        <Image x="5" y="85" source="bg_s.png" />
        <Text text="SMS" x="26" y="87" alignment="Center" color="RGB(160, 160, 160)" >
                <Font size="16" weight="bold" font="Tahoma" />
                <OnClick File="\Windows\tmail.exe" />
        </Text>
        <!-- Registry标签(系统注册表),Key用于读取注册表值,看到这机友应该明白插件中显示电量,未读短信数等在注册表哪个位置了-->
        <Registry key="HKEY_CURRENT_USER\System\State\Messages\sms\Unread\Count" unknown="0" x="27" y="103" alignment="Center" color="RGB(230, 230, 230)">
                <Font size="20" weight="bold" font="Tahoma" />
                <OnClick File="\Windows\tmail.exe" />
        </Registry>
        ...         <!-- 省略以下3个Registry、image、Text标签-->      

        

        <Image x="5" y="137" source="bg_s.png" />
        <Image x="58" y="137" source="bg_s.png" />
        <Image x="111" y="137" source="bg_s.png" />
        <Image x="5" y="190" source="bg_s.png" />
        <Image x="58" y="190" source="bg_s.png" />
        <Image x="111" y="190" source="bg_s.png" />
        <!-- Application标签,用来显示rlToday.ini文件中[Files]节中定义的程序快捷方式。AppName标签中,appnumber表示对应的快捷方式的序号,从0开始-->
        <Application x="11" y="139" appnumber="0" />
        <AppName x="27" y="172" appnumber="0" alignment="Center" color="RGB(230, 230, 230)">
                <Font size="7" font="Tahoma" />
        </AppName>
        <Application x="64" y="139" appnumber="1" />
        <AppName x="80" y="172" appnumber="1" alignment="Center" color="RGB(230, 230, 230)">
                <Font size="7" font="Tahoma" />
        </AppName>
        ...         <!-- 省略以下4个Application标签-->

</today>
[ 本帖最后由 Neo_ 于 2008-5-3  15:57 编辑 ]
附件: 您所在的用户组无法下载或查看附件
随心所遇,随遇而安

TOP

续上节

    6)本楼最下方提供rltoday sdk documents下载,全部为pdf文档,可用Acrobat Reader搜索查找,想学习rltoday一定要仔细阅读,哪怕是E文也要耐心看下去。
    7)rlToday最大的缺点是没有消息接收机制,信息变更全靠刷新。当从纵屏变成横屏时,至今没找到好的办法解决自动切换的问题。这也是PPX,WDA的缺点。但如果桌面设计得当,变化时不会有明显的感觉。


    5  MortScript
    MortScript有点类似DOS系统下的.bat文件,或者VB Scriptl脚本。 它的功能包括:运行,激活,隐藏,关闭,和杀死程序;等待功能;确定的时间长度;等待窗口的生成和激活;更改注册表;读取、建立、删除文件;还有许多其他的功能。应用得当可以完成手机里90%以上的功能,并在不断完善中。使用MortScript已超出了桌面美化的范围,但要想用rltoday做出强大而完美的桌面插件就一定要使用MortScript。

    1)下载:最新为4.1版,提供cab文件下载,只有178K。还有个4.11b版,可以在网站上下载。
    2)安装:cab安装不用多说了。建议安装在手机里,本身很小,如果安装在卡上,我写的程序代码需要改动一些内容。安装完成后仅4个文件,不需要执行任何文件。
    3)Mortscript主要是执行脚本文件,文件后缀为.mscr。在rltoday中的执行方式是,在skin.xml文件中用下面的语句:
引用:
<OnClick File="\Program Files\MortScript\MortScript.exe" command='"\Program Files\rlToday\Pi3cH\mscr\ChangeTab.mscr" "tab=tab1"'/>
        command指示mscr文件的位置
4).mscr文件示例,从下面脚本可以看出,程序先播放一个声音文件,再根据条件分别执行背景光控制、音频管理(我喜欢用它听评书,能记住上次播放的文件)、连接管理器、s2su锁屏程序、凯立德GPS导航和Mobile Excel。这个例程在下面我提供的桌面程序中要用到。
引用:
#播放声音文件
PlaySound(SystemPath("ScriptPath")\"sound-tabchange.wav")
#条件选择过程
Switch(sn)
    Case("s1")
        #执行程序
        Run( "\Windows\Backlight.exe" )
    Case("s2")
        Run( "\Windows\AudioManager.exe" )
    Case("s3")
        Run( "\Windows\CommManager.exe" )
    Case("s4")
        Run( "\Windows\s2u2.exe" )
    Case("s5")
        Run( "\Storage Card\凯立德\Loader.exe" )
    Case("s6")
        Run( "\Windows\pxl.exe" )
EndSwitch
5)MortScript手册下载:同样,学习MortScript离不开说明文档,PDF格式。

[ 本帖最后由 Neo_ 于 2008-5-4  06:08 编辑 ]
附件: 您所在的用户组无法下载或查看附件
随心所遇,随遇而安
刚看到这个帖子的时候才刚开始,现在基本上成型了,太棒了!支持楼主,加精了
主席语录:
财务的一生,是与数字打交道的一生,
是与税局斗智斗勇的一生,
是拿生命掩护老板少交税的一生,
是理财的一生但穷光蛋的一生。
所以,财务生的伟大,死的光荣。
引用:
原帖由 tinni 于 2008-5-3  15:56 发表
刚看到这个帖子的时候才刚开始,现在基本上成型了,太棒了!支持楼主,加精了
感谢丁丁的支持,努力完成这个贴子。

[ 本帖最后由 Neo_ 于 2008-5-4  06:19 编辑 ]
随心所遇,随遇而安
6  rlToday&MortScript综合应用示例

    1)先发几张图上来,示例用国外一个例子改的,5页改了4页半,加了一页。该工具栏可收起显示简捷桌面,展开可以调出绝大部分设置;并实现快捷拨号;显示内存、电量、版本信息;显示日期时间、未接来电、短信和邮件。 相当于HTC Home大部分功能,当然要修改成适应自己的插件需要知道如何使用rlToday和MortScript。
         通过学习我的代码,机友可以学到许多我在黑客篇会提到的东西,希望大家喜欢。
    2)详细介绍
        a)面版收起来的状况
            
        b)第一页是自定义的快捷程序面板,在我的机器上分别实现调节背景灯亮度、音频管理器(我用来听评书)、金山词霸、锁屏、凯立德GPS导航软件和Excel,可通过修改原代码变更。
           第二页是快捷拨号面板,在phone.ini文件中可设置12个号码,因为rlToday对中文支持有问题,我只加入了显示两个。点击后有个号码确认界面,用左菜单软键就可以直接拨出(直接拨出暂时没能实现,但可以通过其他软件实现)。
  
        c)第三页是时间消息面板显示时钟,日历(分别点击可进入时间设置和约会),还有未接来电、短信和邮件,点击分别进入对应的短信、来电历史、邮件收件箱界面。
           第四页是系统消息面板。可显示电量、通话时间、内存、SD卡使用情况、手机信号供应商和WM版本,点击图片分别对应电源调整、系统消息、存储使用(第一页内存和第二页SD卡)、电话设置和关于面板。
          第五页是控制面板。分别为今日、蓝牙、软键设置、输入、删除程序和连接管理(就是那个飞机模式面板)。
  
        d)在面板打开时,点击同一页可收起面板。这部分代码可能有点冗余,懒得改了,抱歉,大家自己改吧。


        安装rlToday和MortScript后(总计不到500K,安装到卡里,否则要改代码)。将文件解压到\program files\rlToday\目录下(不要改SP目录名称,否则要改代码),从rlToday的options选项里选择SP皮肤就行了。
rlToday的用法见前文。

        源代码下载:

[ 本帖最后由 Neo_ 于 2008-5-6  14:28 编辑 ]
附件: 您所在的用户组无法下载或查看附件
随心所遇,随遇而安
狂顶楼主的好帖子
you're outstanding
rltoday支持中文不佳,做电话本真难。谁能告诉我为什么有时候能显示中文,有时候又不行。头疼。
呵呵,谢谢支持。忘记说了,这个插件也支持横板,怎么支持的,看看就知道了。

[ 本帖最后由 Neo_ 于 2008-5-6  14:34 编辑 ]
随心所遇,随遇而安

高级篇总结

总算完成了rlToday+MortScript的示例版程序,给高级篇划上了句号。结贴指日可待,在此先总结下高级篇。

    高级篇的篇幅很长,介绍的软件只是桌面插件的九牛一毛,但这几个软件都有代表性。
    自定义桌面的软件还有PPX、WDA等,它们较占内存,在此不提。rlToday的缺点也说过了,最大的缺点就是不支持消息机制,所以也能象HTC Home那样支持手机左侧滚轮获取焦点,无法单手操作。这也是PPX,WDA等的缺点。要想做出功能完备的插件,只能用VC++或者AIM编程。呵呵,那可是超级篇了。

    再贴几张rlToday的图,大家需要可以提供下载。另外rlToday支持Weather,并且支持得很不错。只不过我不喜欢所以没做在示例中。
  
  

[ 本帖最后由 Neo_ 于 2008-5-6  15:05 编辑 ]
附件: 您所在的用户组无法下载或查看附件
随心所遇,随遇而安

TOP

好东西,收下了,谢谢了,兄弟。
真的很好,狂顶不止
支持MortScript 的还有一个知名的国产软件——今日无限。还在断开发中,功能也很强大。
不过国产软件的通病,没有详细的帮助文档。不过作者的blog更新还是很快的,喜欢的人可以去看下。
随心所遇,随遇而安

黑客篇

这儿写点啥呢?首先从命令行开始吧

一、Kaiser WM6的命令行
    命令行主要是用于MortScript 等程序,用来调用WM6的程序或者控制面板。
1)\Windows\ctlpnl.exe cplmain.cpl,6,0
    蓝色的数字表字调用的控制面板,红色的字表示面板的第几页。蓝色的数字代表的意义如下:
   1-- 密码;2 -- 主人信息;3 -- 电源;            4 -- 内存;           5 -- 关于;  6 -- 背景灯;
   7 -- 屏幕;8 -- 输入法;   9 -- 声音和提醒;10 -- 删除程序; 11 -- 菜单;12 -- 按键;
   13 -- 今日;14 -- 域注册;15-- 无线收发; 16 -- 时钟和闹钟;17-- 无线网络;18 -- 区域设置;
   19 -- 连接;20 -- 电话;   21 --              ;   22 -- 管理证书;   23 -- 蓝牙;      24 -- 错误报告;
   25 -- GPS设置;26 -- 连接管理; 27,28,29--不能单独执行;30 -- 系统任务管理器;

    在MortScript的mscr文件中写为 Run("Windows\ctlpnl.exe ", "cplmain.cpl,6,0")
    以上命令行也可以在PocketController的DOS窗口中执行,要求USB联机。
   

[ 本帖最后由 Neo_ 于 2008-5-8  14:07 编辑 ]
附件: 您所在的用户组无法下载或查看附件
随心所遇,随遇而安
最后的那个桌面好酷啊,楼主自己做的么?可以分享下载不?
引用:
原帖由 doug44444444 于 2008-5-8  14:12 发表
最后的那个桌面好酷啊,楼主自己做的么?可以分享下载不?
你指哪一楼啊?
如果是48楼那个,插件是我写的,下载就在示例那楼的下方,你仔细看。
桌面皮肤也是自己做的呵呵,给个图你自己做吧,方法我教过了。

[ 本帖最后由 Neo_ 于 2008-5-8  16:22 编辑 ]
附件: 您所在的用户组无法下载或查看附件
随心所遇,随遇而安
赞一个
赞一个
赞一个

黑客篇

二、调整今日插件顺序

有些插件安装后发现无法调整它的次序,也就是在“今日”设置中无法将这个插件上移或下移。如Spb Mobile Shell,还有HTC Home。如果你想调整它怎么办?

开启注册表编辑器,在 HKLM_Software_Microsoft_Today_Items项下面可以找到所有今日插件的注册表项,如要调整 HTC Home则进入 Items下面的 HTC Home项,找到 Type 双字节,将 5 改为 4,回“今日设置”就可以移动它了。PS:Enaled   0表示关闭 1表示开启;DLL 就是今日DLL插件的位置;Order表示在设置中的顺序,一般不要动它。

[ 本帖最后由 Neo_ 于 2008-5-9  09:01 编辑 ]
附件: 您所在的用户组无法下载或查看附件
随心所遇,随遇而安

TOP

支持,好文章,可惜看不大懂,菜鸟,哈哈

TOP

想请教LZ一个问题,如果调整插件在屏幕上显示的位置?就是说我就显示一个Spb Mobile Shell插件,就想把它显示在屏幕的最低下,可以实现吗?

TOP

回复 54# 的贴子

引用:
原帖由 zklzz 于 2008-5-12  14:06 发表
想请教LZ一个问题,如果调整插件在屏幕上显示的位置?就是说我就显示一个Spb Mobile Shell插件,就想把它显示在屏幕的最低下,可以实现吗?
你用个透明的图片填充上面的部分不就行了,不过大多数插件都是向下拉出的,你把他放最下面,一点击不就超出桌面了。
就SPB Mobile Shell桌面插件来说功能很简单的,用rlToday随便就写出来了。
随心所遇,随遇而安

TOP

好东西,支持支持
1111111111111111111111

TOP

请问今日里的Weather show在哪里可以下载?
春来春去不可违,花开心醉,花落心碎,人生何必求完美

TOP

本人很很很很很支持.各位大哥.大虾.大侠.大人.老大.有没有一次安装的CAB文件.(本人和猪比,就多了会玩一项.)传一下你们的精品DIY设定.
让WM5。WM6飞起来。

TOP

回楼上

等我回去试试,不过要解别人的包,估计困难
随心所遇,随遇而安