众所周知tsk是Windows mobile的主题安装包,用WinCE Manager查看一下tsk文件,你会发现tsk文件主要是由两部分组成。它就像cab文件一样包括必要的文件和注册表项的记录,这这些必要的文件一般都是jpg图片或者gif图片,而这些图片就是WM今日桌面和开始弹出菜单处的背景图。这些注册表项主要是用来设置系统颜色和记录系统当前所使用的主题文件。当你把tsk文件放在Windows目录或者My Documents等目录下你打开设置==>今日里面的主题文件会现在出来,这是因为WM系统会自动搜索出tsk文件并置于此处。你可以通过编程的方式安装tsk文件,代码如下:

 1 void SetTheme()
 2 {
 3  HKEY hKey;
 4  LONG lRet;
 5  TCHAR szCmdLine[MAX_PATH+1];
 6  TCHAR* pszFile = _T("mytheme.tsk"); // The theme file
 7 
 8  lRet = RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Today"), 0, 0,&hKey);
 9 
10  if(ERROR_SUCCESS == lRet)
11  {
12   RegDeleteValue(hKey, _T("UseStartImage"));
13 
14   wcscpy(szCmdLine, _T("/safe /noui /nouninstall /delete 0 "));
15   wcscat(szCmdLine, pszFile);
16 
17   PROCESS_INFORMATION pi;
18 
19   if(CreateProcess(_T("\\Windows\\wceload.exe"),szCmdLine,NULL, NULL, FALSE, 0, NULL, NULL, NULL , &pi))
20   {
21    WaitForSingleObject(pi.hProcess, INFINITE);
23    CloseHandle(pi.hProcess);
25    RegSetValueEx(hKey, _T("Skin"), 0, REG_SZ,(BYTE*)pszFile, sizeof(TCHAR) * (wcslen(pszFile) + 1);
27    RegCloseKey(hKey);
31    :SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0xF2,0);
32   }
34  }
35 }
36 
      哈哈,好像题有点跑了,其实tsk文件主要是给系统改写注册表和添加两个图像文件。可是在定制ROM的时候却不能却不能通过简单的写注册表和添加图像文件来实现默认主题的修改,就算你在定制ROM的时候添加这样的注册表项,也是没用,因为系统在编译的时候会改写你这个注册表项,这个改写的动作由一个xml文件来控制,你可以查看一下wm61themeconfig_96.xml,你会发现这个就是WM用来设置默认主题的控制文件,里面记录了默认tsk文件名、系统上下栏颜色以及SHCOLOR和SYSCOLOR等系统颜色设置方面的信息。所以不能把这个文件包含进bin里面。工作还没好,你还需要找到Base_DPI_96.cab.pkg并且把它删除掉,其实之前删除wm61themeconfig_96.xml,但是系统依然会重新生成一个wm61themeconfig_96.xml文件,这是因为由Base_DPI_96.cab.pkg自动生成的,这个文件都是都是由一些16进制的字符表示的,主要记录系统图标、系统图标等信息,所以要想彻底的定制自定义默认主题也必须把BSP中的Base_DPI_96.cab.pkg干掉。除此以外,还是需要把tsk文件中的图片解压编译,把tsk文件的注册表项导出来添加到platform.reg。这样就OK了,虽然这种办法是work的,但是其中不乏暴力行为,还没有更好的办法之前只能这样干呗。网上还有一些说通过修改wm61themeconfig_96.xml,方法理论上应该可以,没那么暴力但是没有试过也不清楚是否work。如果行的话,朋友可以留言通告一声。

转载于:https://www.cnblogs.com/IamEasy_Man/archive/2009/09/05/1561099.html

【原创】定制ROM时自定义默认主题相关推荐

  1. WordPress 默认主题自定义页面模板

    有的时候希望在 WordPress 网站上显示一些特殊形式的页面,就需要用到自定义页面模板.本文以 WordPress 内置的 TwentyElven(2011) 和 TwentyTen(2010) ...

  2. VUE:img标签加载图片失败时,显示一张自定义默认图片

    简介 在使用<img />标签时,会遇到图片加载失败(有图片资源路径,但是可能路径拼接不正确.域名失效等)的情况,此时,显示出来的效果看着就很不舒服,就想显示一张默认图片. img加载失败 ...

  3. android通过代码设置铃声_更接地气的定制 ROM,还有哪些特性可以向原生 Android 借鉴?

    2019 年 7 月曾经写过一篇文章揭露 Android 定制系统「阉割」密码管理器现象的文章,虽然从我自己微不足道的影响力出发这样的文章甚至都算不上「揭露」,但 2020 年我在用的 ColorOS ...

  4. vuepress侧边栏配置_VuePress默认主题配置(default theme config) - VuePress中文网

    # 默认主题配置(default theme config) 提示 此页面上列出的所有选项仅适用于默认主题.如果你使用的是自定义主题,则选项可能会有所不同. # 主页(Homepage) 默认主题提供 ...

  5. hbuilder边框代码是什么_HBuilderX自定义UI主题界面风格

    自定义UI主题介绍 HBuilderX的窗体所有颜色都在配置文件中,并且可以复写以实现个性化.从HBuilderX 1.8.8起,支持自定义配置. 在HBuilderX的设置文件setting.jso ...

  6. 替换雷劈网表单设计器使用的默认主题,使用neditor

    替换步骤: 1.前往雷劈网下载demo,快速通道http://formdesign.leipi.org/downloads.html 2.下载neditor,快速通道:https://www.osch ...

  7. 用户配置 计算机配置文件,使用 CopyProfile 自定义默认用户配置文件

    使用 CopyProfile 自定义默认用户配置文件 01/17/2020 本文内容 Windows 使用默认用户配置文件作为模板,将配置文件分配给每个新用户. 通过自定义默认用户配置文件,可以配置在 ...

  8. VuePress快速上手(默认主题)

    文章目录 简要介绍 安装vuePress 步骤一: 步骤二: 步骤三:现有项目中使用 VuePress 管理文档,从此处开始 步骤四: 步骤五: 步骤六: 完善目录结构(满足基本需求) 开启首页展示 ...

  9. Myeclipse总结及自定义黑色主题的配置

    Myeclipse总结及自定义黑色主题的配置 前言 笔者,根据自己的使用经验以及在学习过程中从网上收集到的其他人的使用经验,将感觉有用的信息总结了一下.实现正真意义上的打造专属于自己的Myeclips ...

最新文章

  1. 2015 Multi-University Training Contest 2 1002 Buildings
  2. 趣学python3(4)-数字,字符串,列表(1)
  3. 计算机入门模拟试题abcd,计算机一级计算机基础及WPSOffice应用考前模拟试题及答案(7)...
  4. mysql 主键唯一,MySQL。关键表中的主键。唯一ID还是多个唯一键?
  5. C++编程教程教你如何从零学起(免费高速下载)TXT文档分享
  6. hdu 4665 搜索
  7. X.509,RSA,PKCS 普及
  8. Spark Mllib里相似度度量(基于余弦相似度计算不同用户之间相似性)(图文详解)...
  9. python官方手册-python中文手册
  10. Linux:红帽操作系统介绍
  11. 软件工程考研内容有c语言吗,2020中科大软件工程考研初试科目是什么?
  12. 访问共享服务器的没有权限文件夹权限设置,访问共享文件夹的时候提示没有权限访问网络资源怎么解决...
  13. linux 默认网关自动消失,route add default gw 添加默认网关,重起后消失
  14. RHEL8红帽子系统 网卡命令
  15. linux常用命令(包含系统命令)
  16. 服务器电话销售话术,电话销售必看:让客户无法拒绝的13个经典话术
  17. mysql error unpacking_linux 安装 mysql rpm包出现error: unpacking of archive failed on file
  18. 写一个函数,使给定的一个3 × 3的二维整型数组转置,即行列互换。
  19. unity投篮小游戏,原创,请勿转载。
  20. RTMP 直播推流时延

热门文章

  1. 在HTTPS安全页面中加载HTTP不安全的内容,如何绕过安全警告?
  2. web.xml中配置:通用的用户登录过滤器(SessionFilter)
  3. 【PAT乙】1002 写出这个数 (20分)
  4. linux 7 %3e命令,Linux操作系统常用基础命令
  5. 如何设置几个循环出来的span其中一个宽度_css几个概念
  6. JavaScript的String对象使用
  7. API和Web API(1)
  8. [leetcode] 1335. 工作计划的最低难度
  9. bzoj 2724: [Violet 6]蒲公英(分块预处理)
  10. bzoj 1600: [Usaco2008 Oct]建造栅栏(DP)