==> 2006年12月25日 星期一 <==

RealPlayer安裝曆險記




  這兩天找了首音樂,哪知道下載來的音樂文件是RM文件!本人不大喜歡看電影, Realone 或 RealPlayer 這樣的武器不是我的常規裝備,于是興沖沖去華軍下載了個 RealPlayer來, 准備給機子加強火力。

  哪知道,一點安裝,它給我彈個錯誤對話框來,說什么:“作為受限用戶,您無足夠的windows?操作系統權限使用此程序安裝軟件,請聯系管理員尋求幫助”!我靠!它真是欺負我讀書少呢!我這個賬戶正是初始那個Administrator賬戶改名而已,本來就是管理員賬戶!我懷疑是安裝程序下載錯了,于是又跑去天空下載,一試也是這樣,不信邪,再去下載,這次到pconline,還是不行!我納悶了,難道全部都是安裝文件錯了?!于是直接跑上Real的主頁下載個最新的RealPlayer10.6簡體中文官方版……結果不想而知,倒霉的人始終倒霉……

  到了這時,我認命了,看來錯不在它,于是駕起牛車(10M寬帶)直奔百度、Google,搜索那個錯誤信息。嘩!好多人問這個問題哦!嘻嘻,看來像我一樣倒霉的不少嘛,當然,也讓我看到希望的曙光J 但當我花了兩天把百度和Google那几十頁的搜索結果看遍后,傻眼了,居然問的人多,真正解決了問題的一個都沒有……

  看來這個問題還得自己來解決了,着手還得從那個該死的安裝文件RealPlayer.exe 起,我抬來X光機(BoundsChecker),把API記錄的選項打開,對准 RealPlayer.exe,點下Program -> Start,運行到彈出錯誤對話框處,然后點確定,這時,程序的所有調用過的API及其參數、返回值全部記錄在案。在 Transcript 面板左邊我們可以看到出現錯誤的地方:



  看到沒有?注意,就是第309 行,這里就是錯誤對話框的出現地方!那在這之前,它干過什么,導致出錯呢?往上看,留意到上面第293行的RegCreateKeyExA函數的返回值有異常!正常應該返回ERROR_SUCCESS(零值) ,此時它返回是API錯誤值5!BoundsChecker的右面可以看到它的調用參數及返回值:



  我們知道 RegCreateKeyExA 是一個注冊表鍵的創建函數,第二個參數lpSubKey 正是它要創建的鍵路徑,那根鍵 hKey 是哪個呢,單看 0x80000000也不知道是哪個啊?!打開windows SDK的winreg.h,可以看到HKEY_CLASSES_ROOT 的值正是 0x80000000 !啊?!這里可是系統各種類設置及文件關聯的重地哦!好家伙!居然在這個危險的地方創建鍵值,究竟它想干什么?我們再扛出蓋茨大叔的私家手朮刀 Regedit.exe,翻到HKEY_CLASSES_ROOT\Software 一看——沒什么特別呀!看樣子它是在這里創建鍵出錯了,動手給它加上 RealNetworks 看看……在Software項上右鍵,選擇新建項——出事了!它彈出一個對話框來說:“無法寫入到注冊表項!”看來問題在這里了。我試了下用注冊表文件來進行鍵值的創建也會出現這個錯誤的,那么也就是說調用Win32API也不能在此項中進行鍵值的新建。

為什么不能寫入呢?我又在HKEY_CLASSES_ROOT的其它的項下新建項,沒事呀!上車,再奔百度……找了半天注冊表中出現的那個錯誤,漸漸的,目光落到Software的權限上,它的權限如下:



  沒錯呀,管理員權限是完全控制,自己的賬戶也是完全控制,但為什么自己不能創建鍵值呢?無奈之下,去室友Amsonl的機子上查他注冊表中的同一項,發現他的設置跟我是一樣的!

  到這里,有點山窮水盡的意味了,突然間,想到,如果我把它刪掉重建呢?有點冒險,如果不能重建就搞大發了……狠了狠心,大不了重裝!于是,把Software項導出到save.reg,然后刪除 Software項,很順利!再導入——呃?!不行!!居然彈出同一錯誤來!到這時,几乎要絕望了,但卻留意到Software項被建立了起來,但里面的項及鍵值不全!我嘗試着在Software上右鍵,新建項,不行!再看下Software的權限,發現里面各個組都沒有設置完全控制,設置了一下,再新建 ——Ok!!!!再一次導入save.reg——沒有任何提示,成功!

  馬上找出RealPlayer.exe雙擊,哈哈!終于出現安裝進度了!



  原來RealPlayer被這個Software鍵給卡死了!

  這個問題還會導致Windows Media Player10及11到最后一步時,安裝不成功的錯誤。因為這個Software項里的Windows子項中有Media Player的設置。

  最后,實際上這個鍵值錯誤是怎樣導致的,百思不得其解,因為在網上看到有些人新裝系統然后馬上裝RealPlayer也會出現這個錯誤,也就是說在新系統一開始此鍵就被鎖住了。

  補充:期間有人說裝realone的解碼器可以解決問題,但如果是本文所說的問題則裝realone的解碼器也是不能解決這個問題的,因為裝realone的解碼器還是需要讀寫此鍵值的!




==> 2006年12月3日 星期日 <==

尘缘花开




今天接到家里的报信, 姨丈检查出癌症! 心里感到一阵悲凉 ... 不久前, 也有一个亲戚得癌症, 刚去世, 现在又听到一个亲戚得病, 而且这个亲戚跟我家的关系更为密切...

有时会感叹人生的无奈, 生老病死总难避免 ... 或者, 正是如此, 人才会懂得珍惜吧?!

其实, 从小到大看过不少的生生死死, 经历过不少的离离别别, 开始的十几年, 碰到这些事情我总会禁不住伤心落泪, 有道是, 男儿有泪不轻弹, 只因未到伤心处. 近几年, 特别是上大学以来, 学会用佛道两教的理论来调整自己的心态, 现在接触这些事时终于能坦然面对了, 是福耶? 是祸耶? 不管! 人总是要生存的, 生死离别总是会面对的 ... 花开花落, 缘起缘灭, 谁能料计?

虽然不相信有天堂, 但在这凡尘俗世中给自己一个心灵的寄托也未尝不可 ...

愿已经过去的人不再有俗世的烦恼, 愿还在这边的人为我们停下过去的脚步...