visual studio .net以前的版本,要對登錄檔進行修改,則需要呼叫系統api,而現在則不用那麼麻煩,因為.net已經把登錄檔相關的操作封裝到乙個類中,呼叫的時候只要只要呼叫此類物件相應的屬性或方法即可。
以下就登錄檔這個類進行說明。
首先,要引入註冊類所在的nampespace,如下:
接下來就是對登錄檔的操作,則第一步要像以前操作的那樣,需要設定登錄檔的位置,例如:
registrykey rklocalm = registry.localmachine;
而登錄檔各個根的具體對應如下:
hkey_classes_root
classesroot
hkey_current_user
currentuser
hkey_local_machine
localmachine
hkey_users
users
hkey_current_config
currentconfig
hkey_dyn_data
dyndata
hkey_performance_data
performancedata
然後,就用上面初始化後的物件,來操作登錄檔子鍵。
以下就舉幾個常用的用例。
第一,
列舉某個子鍵的所含子項以及子鍵的值;
registrykey rklocalm = registry.localmachine;
const
string strsubkey = @"software/odbc/odbcinst.ini/microsoft access driver (*.mdb)";
registrykey rksub = rklocalm.opensubkey( strsubkey );
// get sub keys
string strsubkeys = rksub.getsubkeynames();
for( int i = 0; i < strsubkeys.length; i++ )
debug.writeline( strsubkeys[i] );
// get data name and its value
string strdata = rksub.getvaluenames();
for( int i = 0; i < strdata.length; i++ )
:", strdata[i],
rksub.getvalue( strdata[i] ) ) ); }
rklocalm.close();
第二, 建立子項;
registrykey rklocalm = registry.localmachine;
const
string strsubkey = @"software/odbc/odbcinst.ini/microsoft access driver (*.mdb)";
registrykey rksub = rklocalm.opensubkey( strsubkey, true );
rksub.setvalue( "test", "test" );//the type of value according value itself
rklocalm.close();
第三, 刪除子項;
registrykey rklocalm = registry.localmachine;
const
string strsubkey = @"software/odbc/odbc.ini/dbnewtest";
registrykey rksub = rklocalm.opensubkey( strsubkey, true );
rksub.deletevalue( "driverid", false );
rklocalm.close();
第四, 新增某個子鍵的值;
registrykey rklocalm = registry.localmachine;
const
string strsubkey = @"software/odbc/odbc.ini/dbnewtest/test";
registrykey rksub = rklocalm.createsubkey( strsubkey );
rklocalm.close();
第五, 刪除某個子鍵的值;
registrykey rklocalm = registry.localmachine;
const
string strsubkey = @"software/odbc/odbc.ini/dbnewtest";
registrykey rksub = rklocalm.opensubkey( strsubkey, true );
rksub.deletesubkey( "test", false );
rklocalm.close();
第六, 刪除某個子鍵下所有子鍵和子項;
registrykey rklocalm = registry.localmachine;
const
string strsubkey = @"software/odbc/odbc.ini";
registrykey rksub = rklocalm.opensubkey( strsubkey, true );
rksub.deletesubkeytree( "dbnewtest");
rklocalm.close();
其實用到最多的是opensubkey,要注意的是,如果要相對子鍵進行操作的話,一定要加上「true」這個值,以標明對當前開啟的子鍵能具有可寫的能力。否則,預設開啟的方式,是不具有可寫的能力,這樣對待子項進行新增、刪除以及修改等操作,會出現異常。
在C 中輕鬆操作登錄檔
visual studio net以前的版本,要對登錄檔進行修改,則需要呼叫系統api,而現在則不用那麼麻煩,因為.net已經把登錄檔相關的操作封裝到乙個類中,呼叫的時候只要只要呼叫此類物件相應的屬性或方法即可。以下就登錄檔這個類進行說明。首先,要引入註冊類所在的nampespace,如下 接下來就...
如何在C 中讀寫登錄檔
登錄檔是視窗系統的乙個核心的資料庫,在這個資料庫中存放中與系統相關的各種引數,這些引數直接控制中系統的啟動 硬體的驅動程式安裝資訊 以及在視窗系統上執行的各種應用程式的註冊資訊等。這就意味著,如果登錄檔因為某些原因受到了破壞,輕者是視窗系統啟動過程出現異常,重者就有 可能導致整個系統的完全癱瘓。所以...
在Delphi中輕鬆操作登錄檔TRegistry類
在delphi中輕鬆操作登錄檔 tregistry類 在應用程式中,經常需要對登錄檔進行各種操作,如將程式名稱 安裝路徑等資訊儲存到登錄檔中。delphi對相應api函式做了進一步封裝,使得在應用程式中操作登錄檔更加簡單。1 原理 delphi提供了tregistry類,它直接繼承自tobject類...