關於NoDriveTypeAutoRun的鍵值

最近在寫一個修改註冊表的驅動,只是爲了好玩,也算是一個惡搞驅動吧!

遇到一個問題,花了我差不多兩天的時間的,詳情往下看……

寫這篇文章,爲了記住這個教訓,一個提供一種糾錯的思路——無知真可怕

我想修改註冊表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

並且添加一個鍵值,鍵值名稱和鍵值如下:

"NoDriveTypeAutoRun"=dword:000000ff

寫好整個驅動程序,編譯無誤,加載運行後,其他的修改項沒發現什麼問題,但是這個項總是出問題。

問題:鍵值名稱可以添加,但是想把鍵值編程0xff(255),總是顯示

爲如圖1:

圖1

我以爲是我的程序出問題了,一步一步調試。剛開始以爲是字符串初始化出錯,或者是函數使用錯誤,最後這些因素都被排除了。

於是我想了一個測試方案(結果就不截圖了):

測試方法一、把鍵值名稱換成其他字符(REG_DWORD_TEST),鍵值不變(255)成功修改,可以成功添加  鍵值名稱:REG_DWORD_TEST,鍵值:255

測試方法二、鍵值名稱換不變NoDriveTypeAutoRun鍵值改變(1000)最後成功修改,可以成功添加  鍵值名稱:NoDriveTypeAutoRun,鍵值:1000

測試方法三、將一下內容寫在一個txt文檔,

//---------------------------------分割線---------------------------------------------------------------

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff

//---------------------------------分割線---------------------------------------------------------------

然後把這個文件命名爲RegTest.reg ,雙擊運行 猜猜結果會怎樣???如圖2

圖2

這足以說明一個問題,windows不可以將"NoDriveTypeAutoRun"的鍵值設置成:0x000000ff(255),如果設置成0xff(255),系統自動換成0xb5(181).

至於爲什麼,我也不清楚,待以後研究。如果看到這篇文章的你知道原因,請你一定要告訴我,先謝謝了

先結束explorer.exe,再運行explorer.exe,最後運行RegTest.reg,奇怪的是修改成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章