21 个解决方案
#2
1. 修改ShellFolder. 内核启动时候,filesys.exe会根据initobj.dat来创建一些系统目录和文件, 默认是在根目录,也就是RAM盘中创建Desktop, my document...这些目录。explorer.exe程序会根据注册表配置指定的Shell Folders,默认的指向上面RAM盘下filesys.exe创建的这些目录。因此, 我们可以修改注册表来重定向这些路径,指向flash到目录。 如下是一个示例:
[HKEY_LOCAL_MACHINE/System/Explorer/Shell Folders]
"My Documents"="//SDMMC//My Documents"
"Desktop"="//ResidentFlash//Desktop"
"Application Data"="//ResidentFlash//Application Data"
"Favorites"="//ResidentFlash//Favorites"
"Programs"="//ResidentFlash//Programs"
这样,重启之后, 这些目录下面的内容就不会丢失。
[HKEY_LOCAL_MACHINE/System/Explorer/Shell Folders]
"My Documents"="//SDMMC//My Documents"
"Desktop"="//ResidentFlash//Desktop"
"Application Data"="//ResidentFlash//Application Data"
"Favorites"="//ResidentFlash//Favorites"
"Programs"="//ResidentFlash//Programs"
这样,重启之后, 这些目录下面的内容就不会丢失。
#3
我也很想知道有谁实现了?
用ROM Only文件系统的话,总觉得很乱,能用RAM and ROM file system,并且可以将windows 目录映射到residentflash就最好了。
楼上的方法,只能映射桌面之类,不能解决windows 目录!
用ROM Only文件系统的话,总觉得很乱,能用RAM and ROM file system,并且可以将windows 目录映射到residentflash就最好了。
楼上的方法,只能映射桌面之类,不能解决windows 目录!
#4
这种方法也不太行,很多文件安装是直接指定在"\windows\"目录,包括一些非dll文件。
#5
是的,比如"Programs"="\\Windows\\Programs"改为"Programs"="\\SysDisk\\Programs",但在windows目录下还是会有Programs这个文件夹,而且SysDisk盘符下面也有Programs这个文件夹,我想要的效果是,如何解决这个问题?如果我想要Programs这个文件夹还是在windows目录下,但SysDisk盘符下面不能再有Programs这个文件夹,或者反过来。麻烦大家指教和分享,谢谢了。
#6
是的,比如"Programs"="\\Windows\\Programs"改为"Programs"="\\SysDisk\\Programs",但在windows目录下还是会有Programs这个文件夹,而且SysDisk盘符下面也有Programs这个文件夹,我想要的效果是,如何解决这个问题?如果我想要Programs这个文件夹还是在windows目录下,但SysDisk盘符下面不能再有Programs这个文件夹,或者反过来。麻烦大家指教和分享,谢谢了。
#7
这位朋友方便留下QQ吗?我的是597038165,便于相互交流
#8
这个方法我用过了 重启后桌面新建的文件夹还是没了 难道是板子不同nandflash命名有区别吗
"//ResidentFlash//Desktop"
还有 我此种方式把我编译内核的桌面快捷方式也没了 为什么
#9
组件选SYSGEN_FSRAMROM SYSGEN_FSREGHIVE
BSP bat文件加上:set IMGREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_REGFLUSH_THREAD=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSMOUNTASROOT=1
if /i "%IMGREGHIVE%"=="1" set PRJ_BOOTDEVICE_MSFLASH=1
BSP bat文件加上:set IMGREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_REGFLUSH_THREAD=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSMOUNTASROOT=1
if /i "%IMGREGHIVE%"=="1" set PRJ_BOOTDEVICE_MSFLASH=1
#10
非常感谢,抽空试一下
#11
最近也在愁关于永久保存的问题,因为我需要在系统下安装SQL 3.5数据库,重启之后数据库就无法使用了。后来我通过注册表修改一些启动文件的存放位置(我改到NAND FLASH里面去了,安装完成之后本应该在WINDOWS下的文件我复制到NANDFLASH里面了)然后数据库在程序里面可以操作,但是直接打开数据库无法打开。
至于桌面、windows下的文件想要重启不丢失的话,有一种方法是把这些文件做到操作系统内核里面去,当然这是一种笨方法,自己不能从WINCE的操作者的角度保存桌面和windows,只能从操作系统版本制作者的角度解决问题。说的有点乱,希望可以给你一点思路
至于桌面、windows下的文件想要重启不丢失的话,有一种方法是把这些文件做到操作系统内核里面去,当然这是一种笨方法,自己不能从WINCE的操作者的角度保存桌面和windows,只能从操作系统版本制作者的角度解决问题。说的有点乱,希望可以给你一点思路
#12
WINCE系统是映像加载的,不可能保存进去的.可以用以下办法变通一下.
1、用PB直接把用到的文件放到windows目录下,通过更改PB的.bib文件实现,然后重新生成映像文件。
2、自已写一个启动程序,启动时把相关文件拷到windows目录下。
1、用PB直接把用到的文件放到windows目录下,通过更改PB的.bib文件实现,然后重新生成映像文件。
2、自已写一个启动程序,启动时把相关文件拷到windows目录下。
#13
我同意这个说法
这个我实现过,后来放弃了,为什么?!
因为如果在桌面在哪里都能保持的,你会发现系统会越来越慢的!
因为垃圾越来越多,你看windows 就是这样了,windows还有一些垃圾清除软件,但是wince没有
所以后来我还是用ram and rom 文件系统,而不是rom only 文件系统。
#14
BTW windows mobile 就是rom 文件系统的,
你也会知道这个东西越用越慢。
并且也会带来危险,要么不怎么安全的应用安装上去,系统变慢了,就得刷系统还原了。
wince的稳定这点,也有这个文件系统这种特性的功劳。
你也会知道这个东西越用越慢。
并且也会带来危险,要么不怎么安全的应用安装上去,系统变慢了,就得刷系统还原了。
wince的稳定这点,也有这个文件系统这种特性的功劳。
#15
新的产品我们选择的是RAM and ROM文件系统,之前的产品选择的是ROM-only,因为涉及的用户数量大,而且使用时间长,他们已经习惯了,就不改了。
#16
你用RAM and ROM那你装的cab文件会丢失哦
#17
PRJ_ENABLE_FSREGHIVE等这些环境变量的具体作用是什么?
#18
是public\common\oak\files\common.reg中的条件
怀疑是否可行,wince5.0设置这些变量就可以了,
6.0待证实
怀疑是否可行,wince5.0设置这些变量就可以了,
6.0待证实
#19
从上倒下顺序
1.PRJ_ENABLE_FSREGHIVE表示开启HIVE File system
2.PRJ_ENABLE_REGFLUSH_THREAD表示创建一个周期性的刷新注册表的线程,那么哪里设置这个线程的周期刷新时间呢?
请看[HKEY_LOCAL_MACHINE/System/ObjectStore/RegFlush]
"SpawnThread"=dword:1
"FlushPriority256"=dword:FF
"FlushPeriod"=dword:3E8 单位是毫秒
3.PRJ_ENABLE_FSMOUNTASROOT启动安装一个外部存储体,例如flash作为 根文件系统
4.最后一个PRJ_BOOTDEVICE_MSFLASH实际上是多余的,这个同等于设置1和3 叠加。
好久没来csdn了,还是能看到各位熟人。。
#20
非常感谢,你的生活挺多姿多彩了,估计过不了几年,全世界都让你走遍了,哈哈
#21
系统选择RAM and ROM file system,在定制一个俄语的系统,我们系统有其中一个盘符Sysdisk,把桌面映射到Sysdisk中,对于中文和英文的系统已经实现了,但是俄语的还实现不了,麻烦大家指导一下,先谢谢了。下面是我在platform.reg中添加的内容:
[HKEY_LOCAL_MACHINE\System\Explorer\Shell Folders]
IF LOCALE==0804
"Desktop"="\\SysDisk\\桌面"
ENDIF
IF LOCALE==0404
"Desktop"="\\SysDisk\\"
ENDIF
IF LOCALE==0409
"Desktop"="\\SysDisk\\Desktop"
ENDIF
IF LOCALE==0419
"Рабочий стол"="\\SysDisk\\Рабочий стол"
ENDIF
其中0419是俄语的,但不知道为什么不行。
[HKEY_LOCAL_MACHINE\System\Explorer\Shell Folders]
IF LOCALE==0804
"Desktop"="\\SysDisk\\桌面"
ENDIF
IF LOCALE==0404
"Desktop"="\\SysDisk\\"
ENDIF
IF LOCALE==0409
"Desktop"="\\SysDisk\\Desktop"
ENDIF
IF LOCALE==0419
"Рабочий стол"="\\SysDisk\\Рабочий стол"
ENDIF
其中0419是俄语的,但不知道为什么不行。
#1
#2
1. 修改ShellFolder. 内核启动时候,filesys.exe会根据initobj.dat来创建一些系统目录和文件, 默认是在根目录,也就是RAM盘中创建Desktop, my document...这些目录。explorer.exe程序会根据注册表配置指定的Shell Folders,默认的指向上面RAM盘下filesys.exe创建的这些目录。因此, 我们可以修改注册表来重定向这些路径,指向flash到目录。 如下是一个示例:
[HKEY_LOCAL_MACHINE/System/Explorer/Shell Folders]
"My Documents"="//SDMMC//My Documents"
"Desktop"="//ResidentFlash//Desktop"
"Application Data"="//ResidentFlash//Application Data"
"Favorites"="//ResidentFlash//Favorites"
"Programs"="//ResidentFlash//Programs"
这样,重启之后, 这些目录下面的内容就不会丢失。
[HKEY_LOCAL_MACHINE/System/Explorer/Shell Folders]
"My Documents"="//SDMMC//My Documents"
"Desktop"="//ResidentFlash//Desktop"
"Application Data"="//ResidentFlash//Application Data"
"Favorites"="//ResidentFlash//Favorites"
"Programs"="//ResidentFlash//Programs"
这样,重启之后, 这些目录下面的内容就不会丢失。
#3
我也很想知道有谁实现了?
用ROM Only文件系统的话,总觉得很乱,能用RAM and ROM file system,并且可以将windows 目录映射到residentflash就最好了。
楼上的方法,只能映射桌面之类,不能解决windows 目录!
用ROM Only文件系统的话,总觉得很乱,能用RAM and ROM file system,并且可以将windows 目录映射到residentflash就最好了。
楼上的方法,只能映射桌面之类,不能解决windows 目录!
#4
这种方法也不太行,很多文件安装是直接指定在"\windows\"目录,包括一些非dll文件。
#5
是的,比如"Programs"="\\Windows\\Programs"改为"Programs"="\\SysDisk\\Programs",但在windows目录下还是会有Programs这个文件夹,而且SysDisk盘符下面也有Programs这个文件夹,我想要的效果是,如何解决这个问题?如果我想要Programs这个文件夹还是在windows目录下,但SysDisk盘符下面不能再有Programs这个文件夹,或者反过来。麻烦大家指教和分享,谢谢了。
#6
是的,比如"Programs"="\\Windows\\Programs"改为"Programs"="\\SysDisk\\Programs",但在windows目录下还是会有Programs这个文件夹,而且SysDisk盘符下面也有Programs这个文件夹,我想要的效果是,如何解决这个问题?如果我想要Programs这个文件夹还是在windows目录下,但SysDisk盘符下面不能再有Programs这个文件夹,或者反过来。麻烦大家指教和分享,谢谢了。
#7
这位朋友方便留下QQ吗?我的是597038165,便于相互交流
#8
这个方法我用过了 重启后桌面新建的文件夹还是没了 难道是板子不同nandflash命名有区别吗
"//ResidentFlash//Desktop"
还有 我此种方式把我编译内核的桌面快捷方式也没了 为什么
#9
组件选SYSGEN_FSRAMROM SYSGEN_FSREGHIVE
BSP bat文件加上:set IMGREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_REGFLUSH_THREAD=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSMOUNTASROOT=1
if /i "%IMGREGHIVE%"=="1" set PRJ_BOOTDEVICE_MSFLASH=1
BSP bat文件加上:set IMGREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSREGHIVE=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_REGFLUSH_THREAD=1
if /i "%IMGREGHIVE%"=="1" set PRJ_ENABLE_FSMOUNTASROOT=1
if /i "%IMGREGHIVE%"=="1" set PRJ_BOOTDEVICE_MSFLASH=1
#10
非常感谢,抽空试一下
#11
最近也在愁关于永久保存的问题,因为我需要在系统下安装SQL 3.5数据库,重启之后数据库就无法使用了。后来我通过注册表修改一些启动文件的存放位置(我改到NAND FLASH里面去了,安装完成之后本应该在WINDOWS下的文件我复制到NANDFLASH里面了)然后数据库在程序里面可以操作,但是直接打开数据库无法打开。
至于桌面、windows下的文件想要重启不丢失的话,有一种方法是把这些文件做到操作系统内核里面去,当然这是一种笨方法,自己不能从WINCE的操作者的角度保存桌面和windows,只能从操作系统版本制作者的角度解决问题。说的有点乱,希望可以给你一点思路
至于桌面、windows下的文件想要重启不丢失的话,有一种方法是把这些文件做到操作系统内核里面去,当然这是一种笨方法,自己不能从WINCE的操作者的角度保存桌面和windows,只能从操作系统版本制作者的角度解决问题。说的有点乱,希望可以给你一点思路
#12
WINCE系统是映像加载的,不可能保存进去的.可以用以下办法变通一下.
1、用PB直接把用到的文件放到windows目录下,通过更改PB的.bib文件实现,然后重新生成映像文件。
2、自已写一个启动程序,启动时把相关文件拷到windows目录下。
1、用PB直接把用到的文件放到windows目录下,通过更改PB的.bib文件实现,然后重新生成映像文件。
2、自已写一个启动程序,启动时把相关文件拷到windows目录下。
#13
我同意这个说法
这个我实现过,后来放弃了,为什么?!
因为如果在桌面在哪里都能保持的,你会发现系统会越来越慢的!
因为垃圾越来越多,你看windows 就是这样了,windows还有一些垃圾清除软件,但是wince没有
所以后来我还是用ram and rom 文件系统,而不是rom only 文件系统。
#14
BTW windows mobile 就是rom 文件系统的,
你也会知道这个东西越用越慢。
并且也会带来危险,要么不怎么安全的应用安装上去,系统变慢了,就得刷系统还原了。
wince的稳定这点,也有这个文件系统这种特性的功劳。
你也会知道这个东西越用越慢。
并且也会带来危险,要么不怎么安全的应用安装上去,系统变慢了,就得刷系统还原了。
wince的稳定这点,也有这个文件系统这种特性的功劳。
#15
新的产品我们选择的是RAM and ROM文件系统,之前的产品选择的是ROM-only,因为涉及的用户数量大,而且使用时间长,他们已经习惯了,就不改了。
#16
你用RAM and ROM那你装的cab文件会丢失哦
#17
PRJ_ENABLE_FSREGHIVE等这些环境变量的具体作用是什么?
#18
是public\common\oak\files\common.reg中的条件
怀疑是否可行,wince5.0设置这些变量就可以了,
6.0待证实
怀疑是否可行,wince5.0设置这些变量就可以了,
6.0待证实
#19
从上倒下顺序
1.PRJ_ENABLE_FSREGHIVE表示开启HIVE File system
2.PRJ_ENABLE_REGFLUSH_THREAD表示创建一个周期性的刷新注册表的线程,那么哪里设置这个线程的周期刷新时间呢?
请看[HKEY_LOCAL_MACHINE/System/ObjectStore/RegFlush]
"SpawnThread"=dword:1
"FlushPriority256"=dword:FF
"FlushPeriod"=dword:3E8 单位是毫秒
3.PRJ_ENABLE_FSMOUNTASROOT启动安装一个外部存储体,例如flash作为 根文件系统
4.最后一个PRJ_BOOTDEVICE_MSFLASH实际上是多余的,这个同等于设置1和3 叠加。
好久没来csdn了,还是能看到各位熟人。。
#20
非常感谢,你的生活挺多姿多彩了,估计过不了几年,全世界都让你走遍了,哈哈
#21
系统选择RAM and ROM file system,在定制一个俄语的系统,我们系统有其中一个盘符Sysdisk,把桌面映射到Sysdisk中,对于中文和英文的系统已经实现了,但是俄语的还实现不了,麻烦大家指导一下,先谢谢了。下面是我在platform.reg中添加的内容:
[HKEY_LOCAL_MACHINE\System\Explorer\Shell Folders]
IF LOCALE==0804
"Desktop"="\\SysDisk\\桌面"
ENDIF
IF LOCALE==0404
"Desktop"="\\SysDisk\\"
ENDIF
IF LOCALE==0409
"Desktop"="\\SysDisk\\Desktop"
ENDIF
IF LOCALE==0419
"Рабочий стол"="\\SysDisk\\Рабочий стол"
ENDIF
其中0419是俄语的,但不知道为什么不行。
[HKEY_LOCAL_MACHINE\System\Explorer\Shell Folders]
IF LOCALE==0804
"Desktop"="\\SysDisk\\桌面"
ENDIF
IF LOCALE==0404
"Desktop"="\\SysDisk\\"
ENDIF
IF LOCALE==0409
"Desktop"="\\SysDisk\\Desktop"
ENDIF
IF LOCALE==0419
"Рабочий стол"="\\SysDisk\\Рабочий стол"
ENDIF
其中0419是俄语的,但不知道为什么不行。