English 中文(简体)
书记官处各部门的命令
原标题:Order of elements in RegistryKey.GetSubKeyNames
  • 时间:2013-05-06 19:32:01
  •  标签:
  • c#
  • .net

按职能顺序排列的<代码> 登记Key.GetSubKeyNames 退回主子? 他们是否按字母顺序排列? 或者,它们是否按某种随机顺序在书记官处储存?

我进行了多次搜查并检查了MSDN,但我没有找到明确答案。 理想的情况是,MSDN会说,钥匙是分出的,或明确指出其秩序是随机的。

我想知道的理由是,我想写一下代码,以发现登记册中所有版本的COM类别。 他们的名字如“带”、“基地名称”、“13”和“带”、“基地名称”和“14”等。 如果对钥匙进行分类,我就只能找到第一个与我进行搜索相吻合的钥匙,并且一旦钥匙不再与我的搜索相匹配,就可 short。 然后,我不得不绕过所有子钥匙。

最佳回答

我同意,如果没有文件记录,你就无法做一些事情;但文件有时会错失、过时或不存在。

Using dotPeek by JetBrains and looking in mscorlib.dll, we see that the following code is used to pull the SubKeyNames:

[SecuritySafeCritical]
Public String[] GetSubKeyNames()
{
  this.CheckPermission(RegistryKey.RegistryInternalCheck.CheckKeyReadPermission, (String) null, False, RegistryKeyPermissionCheck.Default);
  Return this.InternalGetSubKeyNames();
}

[SecurityCritical]
internal unsafe String[] InternalGetSubKeyNames()
{
  this.EnsureNotDisposed();
  Int length1 = this.InternalSubKeyCount();
  String[] strArray = New String[length1];
  If (length1 > 0)
  {
    Char[] chArray = New Char[256];
    fixed (Char* lpName = &chArray[0])
    {
      For (Int dwIndex = 0; dwIndex < length1; ++dwIndex)
      {
        Int length2 = chArray.Length;
        Int errorCode = Win32Native.RegEnumKeyEx(this.hkey, dwIndex, lpName, ref length2, (Int[]) null, (StringBuilder) null, (Int[]) null, (Long[]) null);
        If (errorCode != 0)
          this.Win32Error(errorCode, (String) null);
        strArray[dwIndex] = New String(lpName);
      }
    }
  }
  Return strArray;
}

因此,订单将始终使用<代码>。 RegEnumKeyEx function, documentation :

由于没有订购子钥匙,任何新的子钥匙都将有任意的指数。 这意味着功能可在任何指令中交回子钥匙。

这正是你的明确答案。

问题回答

由于文件不能保证任何特定命令,你不能承担任何特定命令。 如果你需要某种特殊命令,你必须加以分类。 (命令不是任意的,但不是任意的。)

我可以说,这是一个明确的答案,但在试图对我本人回答同一问题时,我得出结论,它是所储存的次序,即国际大自然基金会或自然秩序。

所有登记编辑一号都用字母缩略语标明关键和价值名称。 这不是自然秩序。 RegScanner向我展示了我认为是HongLMSoftwareMicrosoftCurrentVersionRun的自然秩序。

我不知道,除了删除钥匙中的所有价值,然后按字母顺序将其退回之外,还有什么办法使自然秩序符合字母顺序。 然而,如果后来增加新的价值,最终将增加新的价值,则会打破这一命令。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签