[随笔]不重复发明轮子和Vista_BCD编程

| 8 Comments | 0 TrackBacks | WebBlog Articles
近来写点小东西,需要读取 BCD 启配置文件。
看了 MS 官方的资料,只能通过 WMI 来操作。。
WMI 的依赖性太强了,而且我这个需要在 XP 下也能正常工作(安装了多系统的XP),而 WMI的依赖环境。。。我貌似有点轻度的代码洁癖。
加上一直对.net和WMI不怎么感兴趣,所以还是继续在 XP 下用 VC6来实现吧。

研究了 BCD 的格式。根据 Kingsoft Smallfrogs文章介绍,BCD数据库其实就是标准的注册表数据格式,而且也会在Vista以上系统启动后自动加载到 HKEY_LOCAL_MACHINE\BCD00000000 下。看来可以通过读取注册表的方式获取结果。

这个时候,新问题又出现了。如果是多系统启动中的XP系统的话,BCD数据库并不会自动加载到注册表。难道又是此路不通 ?

最后发现 MS自身的工具 bcdedit.exe 在 XP (当然是BCD存在的情况) 中工作一切正常,而且 只要运行一次 bcdedit,那么,BCD数据库就会被自动加载到注册表

到此,对于读取。一切问题解决掉了。

现在,主要就是写的问题,注册表挂载后的权限默认是只读的,那么改掉权限不可靠也不通用(对于这些键值,难免会有系统保护软件和其他的系统操作把权限调整回来),那么既然"不重复发明轮子"那么写操作全部交给 MS 的小工具 bcdedit.exe 搞定。

虽然,这样一来,自己的程序难免在某些程度上沦成 bcdedit.exe 的一个GUI。但是问题解决了就好:)

随笔。胡乱记录下最近的一些问题和最后解决的思路和结果。
附上抓图(我的系统列表):
os_list.png

引用通告|TrackBacks (0)

本日志的TrackBack URL: http://easun.org/cgi-bin/mtos/tb_mt_41.pl/265.

本文相关评论|Comments (8)

又在折腾啊。。。。^0^

恩恩.最近修改修改...
虽然是内部版本...
呵呵

天使MM虾米时间用了这么怪的 Yahoo OpenID。

莫非还有外部版本?嘿嘿~~

PS:路MM and 天使MM。。。嗯嗯,俩PLMM碰面就是热闹啊~~挖哈哈~~^0^
排排坐,看MM~~~~^-^

呵呵。你又不是不明白,因为种种原因,这个东西再也没有挂到外网。但是code一直在更新,最近添加了 Vista/2008/7的支持。
由于 easunstudio 这个名字我最近又搞回来了,也许。。不排除又挂到外网。。。

PS: 看MM? 玫瑰的爱好很奇特。咳嗽。

终于给捞回来了啊,嘿嘿~~

PS:咳嗽~~这有虾米奇特的~~~
俗话说,爱美之心人皆有之嘛~~~~放着路MM天使MM这俩花见花开的PLMM不看,岂不可惜~~~望天~~~ ^0^

路mm赶快嫁给玫瑰GG吧

发表该文评论|Leave a comment

最近发表|Recent Entries

低调上传: OSSU2.0 beta 091107

废话不说.下载地址:  http://easun.org/ossu/download/ossu2beta091107.rar供有兴趣的朋友试用. 话说,挣扎半天发这个.心中五味具全.简单说明下:1.程序目前不再读取 msdos.sys ,也就说不再检测和支持Win9x. 想在不装bootmgr的情况下操作Win9x的朋友可以在网络搜索旧版.2.仅仅对 BCD 数据库 和 Boot.ini 操作.3.屏障了 对 系统列表的添加/删除...4.增加了对 MBR 的管理(不是程序本身功能,而是GUI而已)...5.对语言支持,但是下载包中仅包含 简体中文, 英文语言包内置,在没有找到任何语言包的情况自动启用英文语言包 最后再说一句: 多系统有风险...暂时不抓图了.…

[随笔]不重复发明轮子和Vista_BCD编程

近来写点小东西,需要读取 BCD 启配置文件。看了 MS 官方的资料,只能通过 WMI 来操作。。WMI 的依赖性太强了,而且我这个需要在 XP 下也能正常工作(安装了多系统的XP),而 WMI的依赖环境。。。我貌似有点轻度的代码洁癖。加上一直对.net和WMI不怎么感兴趣,所以还是继续在 XP 下用 VC6来实现吧。研究了 BCD 的格式。根据 Kingsoft Smallfrogs 的 文章介绍,BCD数据库其实就是标准的注册表数据格式,而且也会在Vista以上系统启动后自动加载到…

Beijing Perl Workshop 2009

由 PerlChina 主办,2009 年 09 月 19 号星期六举行的 Beijing Perl Workshop 是一个免费的 Perl 开源技术交流会,大会全天,向所有对 Perl 等开源技术感兴趣的朋友开放。届时会有众多国内外 Perl 等开源技术爱好者参加。有兴趣的可以访问 http://conference.perlchina.org/bjpw2009/…