前段時間在測試我們觸控螢幕聯網效能的時候,由於屏的mac位址通過登錄檔設定,而pb定製wince核心的時候就有乙個預設值,所以一批下來mac位址都一樣,兩台以上的機器一聯網准出問題,通過登錄檔軟體去修改mac位址太麻煩了,所以做了乙個小的mac位址軟體。
以前用vb做了乙個登錄檔操作類(參見我的blog:功能比較詳盡;現在用c#做了乙個登錄檔操作類也別簡單的只做資料讀寫了,索性也做個全功能的了。由於.net在網域名稱空間microsoft.win32中提供registrykey類,操作登錄檔還是比較方便的,唯感不足的時在操作多級子鍵的時候不很便捷,所以在封裝登錄檔操作類的時候也把這部分內容給考慮進去了。
登錄檔操作類**(可以用在.net精簡框架集下)如下:
//////登錄檔操作類 -- 葉帆工作室
///
public
class yfreg
; private registrykey reg = new registrykey[4];
public yfreg()
//讀指定變數值
public
string readvalue(hkey root,string subkey,string valuename)
} string strkey = subkey.getvalue(valuename).tostring();
subkey.close();
return strkey;
} catch
} //讀指定變數的型別
public registryvaluekind readvaluetype(hkey root, string subkey, string valuename)
} registryvaluekind valuetype = subkey.getvaluekind(valuename);
subkey.close();
return valuetype;
} catch
} //寫指定變數值
public
int writevalue(hkey root, string subkey, string valuename, string valuedata)
//寫指定變數值
public
int writevalue(hkey root, string subkey, string valuename,object valuedata,registryvaluekind valuetype)
} subkey.setvalue(valuename, valuedata, valuetype);
subkey.close();
return 0;
} catch
} //刪除指定變數
public
int deletevalue(hkey root, string subkey, string valuename)
} subkey.deletevalue(valuename, true);
subkey.close();
return 0;
} catch
} //建立指定的鍵
public
int createkey(hkey root, string subkey, string keyname)
} subkey.createsubkey(keyname);
subkey.close();
return 0;
} catch
} //刪除指定的鍵
public
int deletekey(hkey root, string subkey, string keyname)
} subkey.deletesubkeytree(keyname);
subkey.close();
return 0;
} catch
} //判斷指定的鍵是否存在
public
int i***istkey(hkey root, string subkey, string keyname)
} string strsubkey1 = subkey.getsubkeynames();
foreach (string strkeyname in strsubkey1)
return 1;
} catch
} //列舉指定的鍵的子鍵
public
string enumkeyname(hkey root, string subkey)
string strkey = subkey.getsubkeynames();
subkey.close();
return strkey;
} catch
} //列舉指定的鍵的值
public
string enumvaluename(hkey root, string subkey)
string strvalue = subkey.getvaluenames();
subkey.close();
return strvalue;
} catch
} } private
void btnread_click(object sender, eventargs e)
private
void btnwrite_click(object sender, eventargs e)
}
WINCE 讀寫登錄檔操作
include hkey g hkey null h 檔案 void openfile wchar pfilepath,bool nflag 0 long readfile wchar pregkey,byte preadbuf,dword nreadlen,dword dwtype long wr...
Linux平台用C 封裝執行緒讀寫鎖
測試通過。rwlockimpl.h view plain ifndef rwlockimpl header define rwlockimpl header include include include include using namespace std 讀寫鎖允許當前的多個讀使用者訪問保護資...
用c 讀寫ini檔案
可以通過呼叫kernel32.dll中的兩個api writeprivateprofilestring,getprivateprofilestring來實現對ini 檔案的讀些。具體實現的 如下 using system using system.drawing using system.colle...