windows xp 64bit sp2
今天,糾結於乙個問題,在登陸我們公司做的系統時候,需要檢查外掛程式是否存在。
首先讓我們來看看這一段的指令碼。
function i***istoffice()這段指令碼就是檢查控制是否存在,通過呼叫activexobject來讀取登錄檔。}catch(e)
return false;
}
安裝程式安裝沒有任何問題,在登錄檔中也可以看到此鍵值是存在的,進入的時候,總是返回為false,通過反覆除錯,確認是shell.regread,沒有讀取到登錄檔中的鍵值,報錯的資訊是「invalid root in registry key...」,regedit進入到登錄檔中,發現鍵值存在。
突然想到,此activexobject可能讀取的不是64位的,通過regedit32進入,檢視,果然沒有此鍵值,加入,再測試ok。
總結:在windows 64位系統中,往往是存在著32位與64位,如果確認64位沒有問題,可能程式讀取的是32位的環境的,請檢查32位的。
btw:在linux中也可能會有這個情況,lib、lib64,乙個是32位的,乙個是64位,pidgin 中的飛信加入,也要注意這個問題。
64位讀取登錄檔與32位的區別
有乙個讀取登錄檔資訊的程式 if regopenkeyex hkey local machine,subkeystring 0,key read,hkey error success 在32位下完全正常,但是在64位返回值正確,但就是讀不到東西。後來單步發現讀不到東西,就搜64位讀登錄檔失敗,發現需...
64位讀取登錄檔與32位的區別
有乙個讀取登錄檔資訊的程式 if regopenkeyex hkey local machine,subkeystring 0,key read,hkey error success 在32位下完全正常,但是在64位返回值正確,但就是讀不到東西。後來單步發現讀不到東西,就搜64位讀登錄檔失敗,發現需...
64位讀取登錄檔與32位的區別
有乙個讀取登錄檔資訊的程式 if regopenkeyex hkey local machine,subkeystring 0,key read,hkey error success 在32位下完全正常,但是在64位返回值正確,但就是讀不到東西。後來單步發現讀不到東西,就搜64位讀登錄檔失敗,發現需...