CeleSetup - ROM 定制扩展命令解释工具

| 分类 代码  | 标签 分享  WM  固件 

欢迎使用 CeleSetup,它将使你能够轻松愉快地定制 Windows Mobile ROM,使您的 ROM 具备最好的扩充性和伸缩性!

  1. 特点

◎ 短小精干,运行迅速。 ◎ 支持常规的扩展设置命令。 ◎ 支持调用外部 EXE 和 DLL 函数。 ◎ 支持格式统一的命令行参数和命令文件。 ◎ 细微周到的功能支持。功能及其强大。 ◎ 源代码公开,方便更改定制。在源代码中增加扩展命令非常容易。

  1. 使用

◎ 本程序与 XCMD(专为 Windows XPE 而作,详细请看 bbs.wuyou.com 论坛) 具有类似的命令格式和功能,但 CeleSetup 只是为 Windows Mobile 初始化设置为专门做的,可以方便地 ROM 初始化当中的各种操作。

◎ 使用命令行参数:例如,要创建快捷方式,执行“CeleSetup.exe LINK %S\程序\测试程序.lnk,%W\Test.exe”即可。

◎ 使用命令文件:例如,“CeleSetup.exe LOAD \Storage Card*.cst”。

◎ 不用命令行参数,直接执行本程序,将显示版本信息。

◎ 命令参数支持宏替换(如“%W\X.TXT”);命令不区分大小写;尖括号“<>”内的参数表示必须输入,方括号“[]”内的表示可以省略。

◎ 命令文件中,支持以下宏替换(如果需要在参数中使用 % 本身,则需要用两个 % 代替,如 %1 要写成 %%1):

%A=APPDATA,可能为 \Application Data %D=DESKTOP,可能为 \Windows\Desktop %M=PERSONAL,可能为 \My Documents %U=STARTUP,可能是 \Windows\StartUp %W=WINDOWS,可能是 \Windows %P=PROGRAMS,可能是 \Windwos\程序 %S=STARTMENU,可能是 \WIndows\“开始”菜单 %F=PROGRAM FILES 可能是 \Program Files %C=在命令文件中使用,表示命令文件所在的目录;在命令行中使用,表示 CeleSetup 所在目录

◎ 具体用法可以参考 Sample 中的 csx 文件,也可以参考我定制的 Prophet WM5 ROM。

◎ 下面是一般性用法:

  1. Windows Mobile 硬起后解释 InitFlashFiles.dat:创建系统目录;显示欢迎和屏幕调整界面;加载 CeleTask.lnk ->“CeleSetup.exe *”。
  2. CeleSetup 加载根目录下所有子目录下的 *.csx:自动扫描到我做的 CeleSetp.csx。
  3. CeleSetup.csx 内的命令:创建基本的快捷方式;解压缩 CeleSetup.tgz 压缩包中的文件到相应位置;注册 .csx 类型的扩展关联,以后在资源管理器中点击任何 .csx 文件就会自动被加载;加载 \Storage* 和 \Storage Card*,即扫描 SD 卡上的子目录中所有 .csx 文件。
  4. 在 SD 卡中放个 CeleCard.csx 和 CeleCard.reg,自动把卡上的软件的快捷方式添加到开始菜单->程序->工具中,并把相应的设置导入注册表中。

  5. 命令
■ [LOAD ][文件路径 目录* 目录*.cst]

◎ 功能:按顺序逐条运行命令文件中的命令。

◎ 参数:指定文件的路径。如果省略,将自动搜索每个分区根目录中的 XCMD.INI(注意防止嵌套调用)。

◎ 示例:LOAD *

◎ 备注:

※ 每条命令单独一行。 ※ 命令是完全按顺序执行的。 ※ 不正确的命令或空行将忽略不计。 ※ 推荐使用 UNICODE 格式文本文件。 ※ 注释必须单独放一行,推荐使用“//”作为注释起始。 ※ 第一行和最后一行必须是空行或注释,否则可能将被忽略。 ※ 在命令文件中可以使用环境变量“%C”表示命令文件所在目录。 ※ 如果文件路径中的最后两个字符是“*”,则自动搜索该目录中所有子目录下的 .cst 文件,如“LOAD *”。 ※ 如果文件路径中的含有通配符“”或“?”,则自动搜索该目录中的匹配文件,如“LOAD \Storage\Cele*.cst”。

■ EXEC [=][,参数]

◎ 功能:执行 EXE 程序。

◎ 参数:指定 EXE 路径和参数。

◎ 示例:EXEC WCELoad.exe,/nogui “%C\CeleSetup.cab”

◎ 备注:前导“=”表示等待执行完成。

■ CALL [,函数名称][,[#]参数1][,[#]参数2][,[#]参数3][,[#]参数4]

◎ 功能:调用 DLL 函数。

◎ 参数:指定 DLL 路径、函数名称和参数。如果省略函数名称,将调用“DllRegisterServer”。参数默认为 UNICODE 字符串,如果以“#”前导则表示整数;最多支持四个函数参数。

◎ 示例:CALL SHELL32.DLL,DllInstall,#1,I

◎ 备注:函数必须以 STDCALL 方式导出(不明白什么意思的话,就当没任何问题)。

■ REGI <\子项>[键值][=[#]数据]

◎ 功能:设置或删除注册表数据。

◎ 参数:

※ 子项 所选 ROOTKEY 下注册表项的完整名。

※ 键值 要操作的键值。如果省略,则操作默认键值;如果为“!”且没有“=”,则用于删除整个子项。

※ 数据 要设置的数据。如果没有“=”则删除。如果前导“#”则表示 REG_DWORD 整数类型的数据,如“#0×20”;如果前导“@”则为 REG_BINARY,如“@23 34 90 255”;否则为字符串。

◎ 示例:REGI HKCU\Control Panel\Desktop\Wallpaper=%SystemRoot%\WALL.JPG

◎ 备注:请命令比较复杂,请仔细看说明。如果 RESCO 的注册表 DLL 插件 RRegShell.dll 存在,该命令还支持导入注册表文件,例如“REGI %C*.reg”。

■ FILE <文件路径>[<操作符>[目标路径]

◎ 功能:操作文件或目录。

◎ 参数:指定源文件路径和目标路径,支持通配符,可以用分号同时操作多个文件。操作符“-}”、“=}”分别对应移动、复制,没有操作符则表示删除操作。

◎ 示例:FILE \Temp*.txt

◎ 备注:无。

■ LINK <快捷方式路径><,目标路径>[,运行参数][,图标路径][,图标索引]

◎ 功能:创建快捷方式。

◎ 参数:

※ 快捷方式路径 指定要生成的快捷方式的路径,不需要“.LNK”扩展名。

※ 目标路径 指定快捷方式的目标文件或目录。

※ 运行参数 目标程序运行参数。

※ 图标路径 快捷方式图标的路径。

※ 图标索引 快捷方式图标的在文件资源中的标识(不填写则默认)。

◎ 示例:LINK %S\电话,CProg.exe,,ShellRes.dll,1024

◎ 备注:无。

■ XZIP <文件路径>[,目标目录]

◎ 功能:解压缩 TAR GZ 文件到指定目录。

◎ 参数:指定源文件路径和目标路径,如果没有目标目录,将解压缩到根目录。

◎ 示例:XZIP %C\CeleSetup.tgz r/> ◎ 备注:此命令用来解压缩文件到指定目录,从而避免 InitFlashFiles.dat 中大量的文件拷贝操作的命令。TAR GZ 格式可以用 WinRAR 来压缩,然后用 ArcConvert 转换成 TAR GZ 格式。

■ SEND <按键代码1[_ ^]>[,按键代码2][,按键代码3]…

◎ 功能:模拟按键。

◎ 参数:虚拟按键代码,如 VK_NUMLOCK,请参相关考编程文档。如果按键代码以“_”结束,则仅模拟按键按下;“^”则仅模拟按键弹起;否则模拟按下并弹起。很生动吧:)

◎ 示例:SEND 0x12,0x09,0×09^,0×12^

◎ 备注:上面的示例模拟 Alt+Tab。按键代码支持 16 进制,如“SEND 0×90”表示按下 NumLock 键。

■ WAIT <时间>

◎ 功能:等待指定时间后再继续执行命令。

◎ 参数:指定时间,单位为毫秒。

◎ 示例:WAIT 2000

◎ 备注:可以在执行 SHELL 后等一段时间,然后执行“LOGO”命令关闭登录画面;或者执行其它操作。

■ KILL <进程名称>

◎ 功能:强制终止指定的进程。

◎ 参数:进程名称,即 EXE 文件名(不包含路径)。

◎ 示例:KILL WinLogon

◎ 备注:此命令将终止与“进程名称”前部分匹配的所有进程,所以如果省略参数,可能将全部进程关闭。

■ SHUT [G P K H R]

◎ 功能:关闭、重起或硬起设备。

◎ 参数:关闭、重起或硬起设备。默认为重新启动。

◎ 示例:SHUT

◎ 备注:分别表示 GwesPowerOffSystem()/EWX_POWEROFF/keybd_event/SetCleanRebootFlag/KernelIoControl/EWX_REBOOT 方式执行。

■ XLOG [文件路径]

◎ 功能:启用日志文件。日志文件可以记录每条命令的执行结果,帮助用户验证命令文件的正确性。

◎ 参数:日志文件路径。

◎ 示例:LOGO \CeleSetup.LOG

◎ 备注:此命令不能在命令行参数中使用(必须在命令文件中使用)。命令文件结束之前,必须调用一次不带参数的“XLOG”命令,以关闭日志文件。公开发布的 ROM 中建议不要启用日志文件。

■ BEEP [类型]

◎ 功能:播放通知声。

◎ 参数:声音类型。默认为 0,具体意义与 MessageBeep 相同,请查阅相关文档或实际尝试。

◎ 示例:BEEP

◎ 备注:无。

■ ECHO <提示文字>[,标题][,类型]

◎ 功能:弹出消息提示框。

◎ 参数:分别是提示文字和对话框标题;以及对话框类型,与 MessageBox 意义相同,比如下面是图标类型:

#define MB_ICONERROR        0×10
#define MB_ICONQUESTION     0×20
#define MB_ICONWARNING      0×30
#define MB_ICONINFORMATION  0×40

◎ 示例:LOGO \CeleSetup.LOG

◎ 备注:此命令不能在命令行参数中使用(必须在命令文件中使用)。命令文件结束之前,必须调用一次不带参数的“XLOG”命令,以关闭日志文件。公开发布的 ROM 中建议不要启用日志文件。

■ IFEX [!]<路径><,命令>

◎ 功能:判断路径是否存在,决定是否执行命令。

◎ 参数:

※ 路径 判断路径是否存在。前导“!”表示不存在才执行。

※ 命令 要执行的命令。

◎ 示例:IFEX \ABC.ini SHUT

◎ 备注:本命令可以嵌套使用,判断多个条件。

  1. 致谢

◎ 感谢 PANFANS 论坛 提供的讨论场所。 ◎ 感谢热心的 Kavana 的意见并制作了精美图标。

  1. 许可

◎ 本程序及其源代码是可以免费获取的。 ◎ 如果您使用或修改了其中任何的源代码,则必须把使用这些源代码的项目以及项目内的所有源代码和文档公开。否则禁止使用本程序源代码的任何部分。 ◎ 您可以复制、分发和传播无限制数量的软件产品,但您必须保证每一份复制、分发和传播都必须是完整和真实的,包括所有有关本软件产品的软件、电子文档,版权和商标宣言。 ◎ 作者特此申明对本软件产品之使用不提供任何保证,不对任何用户保证本软件产品的适用性,不保证无故障产生;亦不对任何用户使用此软件所遭遇到的任何理论上的或实际上的损失承担 责任。 ◎ 如果您使用本软件,即表示已经默认接受了此协议。

要获取更多信息,请访问 WWW.YONSM.NET

Yonsm Yonsm@163.com WWW.Yonsm.NET 2007.4.2,杭州

下载:(已过期,请参看更强大的 CeleCommand)

更新了,提供 Setup DLL 的版本,这下要制作功能强大的 CAB 包方便多了,比HTC的什么CustomizeTools垃圾好多了。用来做CAB的SetupDLL,无穷强大。DLL自动加载*就是所有子目录中的.csx)

注意:仅在 O2 XDA Neo Pocket PC Phone WM5 中测试通过,但理论上适用于所有 Windows Mobile 系统,包括 Smartphone/ Pocket PC 2003/5.0/6.0


上一篇     下一篇