亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

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

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

admin
2021年2月16日 22:36 本文熱度 4861
獲取下面所有字符串值:
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)  //這里判斷類(lèi)型RegistryValueKind.DWord
            {
                Text1.Text = Text1.Text + "\r\n" + vname + ":" + rk.GetValue(vname);
            }
        }
        rk.Close();
    }
}

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

該文章在 2021/2/18 15:34:33 編輯過(guò)

全部評(píng)論1

admin
2021年2月16日 22:46
 

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


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

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



         看起來(lái)一切正常,但是這個(gè)RegistryValueKind.DWord是有問(wèn)題的。

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

         那么如何解決這個(gè)BUG呢?

         讀者可能試圖這樣做:

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

         目的是強(qiáng)制把參數(shù)轉(zhuǎn)換成32位有符號(hào)數(shù),這樣是不行的,同樣提示異常,因?yàn)閒fffffff已經(jīng)超出了有符號(hào)32位數(shù)的表示范圍,無(wú)法轉(zhuǎn)換。

         或者這樣做:

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

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

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

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

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

4.  unchecked

5.  {

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

7.  }

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

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


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

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