tft每日頭條

 > 生活

 > c語言判斷數組結點存在

c語言判斷數組結點存在

生活 更新时间:2025-01-23 21:16:15

c語言判斷數組結點存在?用.NET下托管語言C#操作注冊表,主要内容包括:注冊表項的創建,打開與删除、鍵值的創建(設置值、修改),讀取和 删除、判斷注冊表項是否存在、判斷鍵值是否存在 準備工作: 1:要操作注冊表,我們必須要引入必要的命名空間:,接下來我們就來聊聊關于c語言判斷數組結點存在?以下内容大家不妨參考一二希望能幫到您!

c語言判斷數組結點存在(c注冊表操作)1

c語言判斷數組結點存在

用.NET下托管語言C#操作注冊表,主要内容包括:注冊表項的創建,打開與删除、鍵值的創建(設置值、修改),讀取和 删除、判斷注冊表項是否存在、判斷鍵值是否存在。 準備工作: 1:要操作注冊表,我們必須要引入必要的命名空間:

  1. using Microsoft.Win32;

在這個命名空間裡面包含了許多注冊表相關的類,足夠我們使用了~~ 2:命名空間裡面提供了一個類:RegistryKey 利用它我們可以定位到注冊表最開頭的分支: ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig 如:

  1. RegistryKey key = Registry.LocalMachine;

3:在操作的過程中涉及到子分支,要用進行深入,單個會報錯! 4:最後要調用RegistryKey對象的Close()關閉對注冊表的修改~~~ 5:以下我們的例子都是在LocalMachine分支下,請注意。 一:注冊表項的創建,打開與删除 1:創建: 創建注冊表項主要用到RegistryKey 的CreateSubKey()方法。如:

  1. RegistryKey key = Registry.LocalMachine;
  2. RegistryKey software = key.CreateSubKey(softwaretest);

在HKEY_LOCAL_MACHINESOFTWARE下新建名為test的注冊表項。如果已經存在則不影響! 2:打開: 打開注冊表項主要用到RegistryKey 的OpenSubKey()方法。如:

  1. RegistryKey key = Registry.LocalMachine;
  2. RegistryKey software = key.OpenSubKey(softwaretest,true);

注意該方法後面還可以有一個布爾型的參數,true表示可以寫入。 注意,如果該注冊表項不存在,樣用這個方法會抛出異常 3:删除: 删除注冊表項主要用到RegistryKey 的DeleteSubKey()方法。如:

  1. RegistryKey key = Registry.LocalMachine;
  2. key.DeleteSubKey(softwaretest,true); //該方法無返回值,直接調用即可
  3. key.Close();

注意,如果該注冊表項不存在,這調用這個方法會抛出異常 二:鍵值得創建(設置值、修改),讀取和删除 1:創建(設置值、修改): 對鍵值的創建修改等操作主要用到RegistryKey 的SetValue()方法

  1. RegistryKey key = Registry.LocalMachine;
  2. RegistryKey software = key.OpenSubKey(softwaretest,true); 該項必須已存在
  3. software.SetValue(test, 元);

在HKEY_LOCAL_MACHINESOFTWAREtest下創建一個名為“test”,值為“園”的鍵值。如果該鍵值原本已經存在, 則會修改替換原來的鍵值,如果不存在則是創建該鍵值。 注意:SetValue()還有第三個參數,主要是用于設置鍵值的類型,如:字符串,二進制,Dword等等~~默認是字符串。 如:

  1. software.SetValue(test, 0, RegistryValueKind.DWord);// 二進制信息
  2. ey.Close();

2:讀取:

  1. string info = ;
  2. RegistryKey Key;
  3. Key = Registry.LocalMachine;
  4. myreg = Key.OpenSubKey(softwaretest);
  5. myreg = Key.OpenSubKey(softwaretest,true);
  6. info = myreg.GetValue(test).ToString();
  7. myreg.Close();

info結果為:原 3:删除:

  1. RegistryKey delKey = Registry.LocalMachine.OpenSubKey(Softwaretest, true);
  2. delKey.DeleteValue(test);
  3. delKey.Close();

細心的讀者可能發現了第二個例子中OpenSubKey()方法參數與其他例子的不同。 如果你要修改鍵值,包括創建、設置、删除鍵值等都要在方法後面加個布爾參數,設置為true,表示可寫可改;如果僅 僅隻是讀取鍵值可以不加,此時可以關閉,你不能再往裡寫值(當然,你要加也可以true)! 還有讀者提到讀寫默認鍵值的問題,主要在設置、讀取的方法中将鍵名置空則就是對默認鍵值的操作。 如:

  1. software.SetValue(, 元);

在HKEY_LOCAL_MACHINESOFTWAREtest修改默認鍵值的值為“園”。讀取類似! 另外,默認的鍵值是不能删除的,所以不要用DeleteValue()方法去删除,會抛出異常的! 三:判斷注冊表項是否存在

  1. private bool IsRegeditItemExist()
  2. {
  3. string[] subkeyNames;
  4. RegistryKey hkml = Registry.LocalMachine;
  5. RegistryKey software = hkml.OpenSubKey(SOFTWARE);
  6. RegistryKey software = hkml.OpenSubKey(SOFTWARE, true);
  7. subkeyNames = software.GetSubKeyNames();
  8. //取得該項下所有子項的名稱的序列,并傳遞給預定的數組中
  9. foreach (string keyName in subkeyNames) 遍曆整個數組
  10. {
  11. if (keyName == test) 判斷子項的名稱
  12. {
  13. hkml.Close();
  14. return true;
  15. }
  16. }
  17. hkml.Close();
  18. return false;
  19. }

四:判斷關鍵值是否存在

    1. private bool IsRegeditKeyExit()
    2. {
    3. string[] subkeyNames;
    4. RegistryKey hkml = Registry.LocalMachine;
    5. RegistryKey software = hkml.OpenSubKey(SOFTWAREtest);
    6. RegistryKey software = hkml.OpenSubKey(SOFTWAREtest, true);
    7. subkeyNames = software.GetValueNames();
    8. //取得該項下所有鍵值得名稱的序列,并傳遞給預定的數組中
    9. foreach (string keyName in subkeyNames)
    10. {
    11. if (keyName == test) 判斷鍵值得名稱
    12. {
    13. hkml.Close();
    14. return true;
    15. }
    16. }
    17. hkml.Close();
    18. return false;
    19. }
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved