公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

c#怎么循環(huán)讀取注冊表某目錄下所有的子鍵/字符串值名稱

admin
2021年2月16日 22:36 本文熱度 4519
獲取下面所有字符串值:
private void button1_Click(object sender, EventArgs e)
{
    RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\MICROSOFT\\INTERNET EXPLORER\\MAIN");
    if(rk != null)
    {
        foreach (string vname in rk.GetValueNames())
        {
            if (rk.GetValueKind(vname) == RegistryValueKind.String)  //這里判斷類型RegistryValueKind.DWord
            {
                Text1.Text = Text1.Text + "\r\n" + vname + ":" + rk.GetValue(vname);
            }
        }
        rk.Close();
    }
}

獲取下面所有子鍵值:
public static bool IsAisino()
{
    bool IsAisino = false;
    //獲取注冊表路徑
    RegeditKey regeditKey = TaxSoftwareBaseInfo.GetRealyTrueRegeditPath(WindowsInfo.GetWindowsVersion());
    RegistryKey regSubKey = null;
    //獲取驅(qū)動路徑
    regSubKey = regeditKey.Registry.OpenSubKey(@"System\CurrentControlSet\Control\Print\Printers\", false);
    string[] rk = regSubKey.GetSubKeyNames();
    foreach (var item in rk)
    {
        //這里就是要判斷讀取注冊表的值
    }
}

該文章在 2021/2/18 15:34:33 編輯過

全部評論1

admin
2021年2月16日 22:46
 

C#操作注冊表REG_DWORD類型鍵異常(RegistryValueKind.DWord異常)解決方案


         在用C#操作注冊表時,如果注冊表鍵的類型是REG_DWORD,有可能遇到溢出BUG。網(wǎng)上這方面的資料很少,在這共享一下。

         C#可以用RegistryKey類的SetValue方法來設(shè)置鍵值,例如:



         看起來一切正常,但是這個RegistryValueKind.DWord是有問題的。

         注冊表中的REG_DWORD是無符號32位數(shù)值,而C#中的RegistryValueKind.DWord是有符號32位數(shù)值。這就意味著RegistryValueKind.DWord的表示范圍比REG_DWORD小,因此導(dǎo)致直接傳入一些大數(shù)時會拋出異常提示類型不正確。

         那么如何解決這個BUG呢?

         讀者可能試圖這樣做:

         openKey.SetValue("NoViewOnDrive",Convert.ToInt32("ffffffff",16), RegistryValueKind.DWord);

         目的是強制把參數(shù)轉(zhuǎn)換成32位有符號數(shù),這樣是不行的,同樣提示異常,因為ffffffff已經(jīng)超出了有符號32位數(shù)的表示范圍,無法轉(zhuǎn)換。

         或者這樣做:

         openKey.SetValue("NoViewOnDrive",Convert.ToUInt32 ("ffffffff",16), RegistryValueKind.DWord);

         目的是把參數(shù)強制轉(zhuǎn)換成無符號32位表示,這樣同樣不行,SetValue方法內(nèi)部會自動把參數(shù)轉(zhuǎn)換成有符號32位表示,因此,我們的轉(zhuǎn)換是徒勞的,還會被轉(zhuǎn)換回去,而轉(zhuǎn)換回去后,又會提示超出范圍。

         其實,解決這個問題的方法很簡單,只要把轉(zhuǎn)換過程放在unchecked語句里就行了,unchecked語句塊內(nèi)的轉(zhuǎn)換,不做溢出檢查,溢出了直接用補碼表示。例如:

1.  Int32 tempInt = 0; //預(yù)先定義一個有符號32位數(shù)

3.  //unchecked語句塊內(nèi)的轉(zhuǎn)換,不做溢出檢查

4.  unchecked

5.  {

6.      tempInt = Convert.ToInt32("ffffffff", 16); //強制轉(zhuǎn)換成有符號32位數(shù)

7.  }

9.  //此時的tempInt已經(jīng)是有符號32位數(shù),可以直接寫入注冊表

10openKey.SetValue("NoViewOnDrive", tempInt, RegistryValueKind.DWord);


         這樣轉(zhuǎn)折一下,就可以成功寫入注冊表了。

該評論在 2021/2/16 22:46:06 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 97人人澡人人爽 | 精品国产一区二区三区av麻 | 国产成人a视频在线观看 | 精品视频精品国产免费视 | 国产超高清麻豆精品传媒麻豆精品 | 国产成人精品久久一区二区 | 国产午夜福利久久精品 | 国产欧美日韩制服丝袜三区 | 国产午夜精品1区2区3福利 | 国产无码在线观看免费在线 | 91se在线观看一区二区 | 极品熟妇大蝴蝶20p 极品熟女少妇av免费久久自慰 | 国产精品无码一区二区三级 | 国产午夜性爱无码视频 | 国产剧免费在线观看 | 激情人妻制服丝袜 | 国产巨大爆乳在线观看 | 国产精品福利成人午夜精品视频 | av三级片黄片在线播放 | 国产免费一区二区三区在线观看 | 99国产成人综合久久精品77 | 国产成人av在线影院 | 国产成人精品三上悠亚久久 | 成人无码免费一区二区三区 | 91久久久久精品无码专区 | 99自偷国偷产品一区 | 国产91丝袜在线播放动漫蜜月 | 国产91嫩草精品 | 国产欧美产日产综合在线 | 国产精品成人免费视频网站 | 成人无码h真人在线网站 | 丰满人妻一区二区三区视频53 | 99久久国产综合精品麻豆 | 国产丰满老熟女60岁重口对白 | 国产妇女性爽视频免费 | av片在线观看 | 国产精品亚洲专区无码影院 | 国产欧美日韩资源在线观看 | 国产美女被艹在线 | 国产成人无码av一区二区在 | 国产精品成人啪精久久 |