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」這個值,以標明對當前開啟的子鍵能具有可寫的能力。否則,預設開啟的方式,是不具有可寫的能力,這樣對待子項進行新增、刪除以及修改等操作,會出現異常。
在Delphi中輕鬆操作登錄檔TRegistry類
在delphi中輕鬆操作登錄檔 tregistry類 在應用程式中,經常需要對登錄檔進行各種操作,如將程式名稱 安裝路徑等資訊儲存到登錄檔中。delphi對相應api函式做了進一步封裝,使得在應用程式中操作登錄檔更加簡單。1 原理 delphi提供了tregistry類,它直接繼承自tobject類...
如何在C 中輕鬆操作登錄檔
visual studio net以前的版本,要對登錄檔進行修改,則需要呼叫系統api,而現在則不用那麼麻煩,因為.net已經把登錄檔相關的操作封裝到乙個類中,呼叫的時候只要只要呼叫此類物件相應的屬性或方法即可。以下就登錄檔這個類進行說明。首先,要引入註冊類所在的nampespace,如下 接下來就...
c 操作登錄檔
1.讀取指定名稱的登錄檔的值 private string getregistdata string name 以上是讀取的登錄檔中hkey local machine software目錄下的 目錄中名稱為name的登錄檔值 2.向登錄檔中寫資料 private void wtregedit st...