Registry.PerformanceData 字段
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
包含软件组件的性能信息。 该字段读取 Windows 注册表基项 HKEY_PERFORMANCE_DATA。
public: static initonly Microsoft::Win32::RegistryKey ^ PerformanceData;
public static readonly Microsoft.Win32.RegistryKey PerformanceData;
staticval mutable PerformanceData : Microsoft.Win32.RegistryKey
Public Shared ReadOnly PerformanceData As RegistryKey
字段值
示例
以下示例演示如何检索此键的子项,并将其名称输出到屏幕。 OpenSubKey使用 方法创建感兴趣的特定子项的实例。 然后,可以使用 中的其他 RegistryKey 操作来操作该键。 请注意,此示例通常不返回任何结果,因为可能没有性能数据。
using namespace System;
using namespace Microsoft::Win32;
void PrintKeys( RegistryKey ^ rkey )
{
// Retrieve all the subkeys for the specified key.
array<String^>^names = rkey->GetSubKeyNames();
int icount = 0;
Console::WriteLine( "Subkeys of {0}", rkey->Name );
Console::WriteLine( "-----------------------------------------------" );
// Print the contents of the array to the console.
System::Collections::IEnumerator^ enum0 = names->GetEnumerator();
while ( enum0->MoveNext() )
{
String^ s = safe_cast<String^>(enum0->Current);
Console::WriteLine( s );
// The following code puts a limit on the number
// of keys displayed. Comment it out to print the
// complete list.
icount++;
if ( icount >= 10 )
break;
}
}
int main()
{
// Create a RegistryKey, which will access the HKEY_PERFORMANCE_DATA
// key in the registry of this machine.
RegistryKey ^ rk = Registry::PerformanceData;
// Print out the keys.
PrintKeys( rk );
}
using System;
using Microsoft.Win32;
class Reg {
public static void Main() {
// Create a RegistryKey, which will access the HKEY_PERFORMANCE_DATA
// key in the registry of this machine.
RegistryKey rk = Registry.PerformanceData;
// Print out the keys.
PrintKeys(rk);
}
static void PrintKeys(RegistryKey rkey) {
// Retrieve all the subkeys for the specified key.
string [] names = rkey.GetSubKeyNames();
int icount = 0;
Console.WriteLine("Subkeys of " + rkey.Name);
Console.WriteLine("-----------------------------------------------");
// Print the contents of the array to the console.
foreach (string s in names) {
Console.WriteLine(s);
// The following code puts a limit on the number
// of keys displayed. Comment it out to print the
// complete list.
icount++;
if (icount >= 10)
break;
}
}
}
Imports Microsoft.Win32
Class Reg
Public Shared Sub Main()
' Create a RegistryKey, which will access the HKEY_PERFORMANCE_DATA
' key in the registry of this machine.
Dim rk As RegistryKey = Registry.PerformanceData
' Print out the keys.
PrintKeys(rk)
End Sub
Shared Sub PrintKeys(rkey As RegistryKey)
' Retrieve all the subkeys for the specified key.
Dim names As String() = rkey.GetSubKeyNames()
Dim icount As Integer = 0
Console.WriteLine("Subkeys of " & rkey.Name)
Console.WriteLine("-----------------------------------------------")
' Print the contents of the array to the console.
Dim s As String
For Each s In names
Console.WriteLine(s)
' The following code puts a limit on the number
' of keys displayed. Comment it out to print the
' complete list.
icount += 1
If icount >= 10 Then
Exit For
End If
Next s
End Sub
End Class
注解
每个软件组件为其对象创建密钥,在安装时创建计数器,并在执行时写入计数器数据。 可以使用 函数访问此数据, RegistryKey 就像访问任何其他注册表数据一样。
尽管使用注册表来收集性能数据,但数据不会存储在注册表数据库中。 相反,使用此键访问注册表会导致系统从相应的系统对象管理器收集数据。
若要从本地系统获取性能数据,请将 GetValue 方法与 Registry.PerformanceData 键一起使用。 第一次调用将打开密钥, (无需先显式打开密钥) 。 但是,在完成获取性能数据后,请务必使用 Close 方法关闭键的句柄。 在使用软件组件的性能数据时,用户无法安装或删除软件组件。
若要从远程系统获取性能数据,必须使用 OpenRemoteBaseKey 方法,以及远程系统的计算机名称和 Registry.PerformanceData 键。 此调用检索表示远程系统性能数据的密钥。 若要检索数据,请使用此键(而不是 Registry.PerformanceData 键)调用 GetValue 。
注意
在 Windows Server 2003 上,用户必须至少属于 性能监视器 Users 组才能访问此基键的子项。