RegistryKey.OpenRemoteBaseKey Methode

Definitie

Hiermee opent u een nieuwe T:Microsoft. Win32.RegistryKey die de aangevraagde sleutel op een externe computer vertegenwoordigt, met de optie van de opgegeven registerweergave.

Overloads

Name Description
OpenRemoteBaseKey(RegistryHive, String)

Hiermee opent u een nieuwe RegistryKey die de aangevraagde sleutel op een externe computer vertegenwoordigt.

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Hiermee opent u een nieuwe registersleutel die de aangevraagde sleutel vertegenwoordigt op een externe computer met de opgegeven weergave.

OpenRemoteBaseKey(RegistryHive, String)

Hiermee opent u een nieuwe RegistryKey die de aangevraagde sleutel op een externe computer vertegenwoordigt.

public:
 static Microsoft::Win32::RegistryKey ^ OpenRemoteBaseKey(Microsoft::Win32::RegistryHive hKey, System::String ^ machineName);
public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey(Microsoft.Win32.RegistryHive hKey, string machineName);
static member OpenRemoteBaseKey : Microsoft.Win32.RegistryHive * string -> Microsoft.Win32.RegistryKey
Public Shared Function OpenRemoteBaseKey (hKey As RegistryHive, machineName As String) As RegistryKey

Parameters

hKey
RegistryHive

De HKEY die moet worden geopend vanuit de RegistryHive opsomming.

machineName
String

De externe machine.

Retouren

De aangevraagde registersleutel.

Uitzonderingen

hKey is ongeldig.

machineName is niet gevonden.

machineName is null.

De gebruiker beschikt niet over de juiste machtigingen om deze bewerking uit te voeren.

De gebruiker beschikt niet over de benodigde registerrechten.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een registersleutel op een externe computer opent en de waarden van de sleutel opsommen. De externe computer moet de externe registerservice uitvoeren. Geef de naam van de externe computer op als een opdrachtregelargument bij het aanroepen van het programma.

using namespace System;
using namespace System::IO;
using namespace System::Security::Permissions;
using namespace Microsoft::Win32;


int main( int argc, char *argv[] )
{
   RegistryKey ^ environmentKey;
   
   // Check that an argument was specified when the 
   // program was invoked.
   if ( argc == 1 )
   {
      Console::WriteLine( "Error: The name of the remote computer "
      "must be specified as input on the command line." );
      return  -1;
   }

   try
   {
      
      // Open HKEY_CURRENT_USER\Environment on a remote computer.
      environmentKey = RegistryKey::OpenRemoteBaseKey( RegistryHive::CurrentUser, gcnew String(argv[ 1 ]) )->OpenSubKey( "Environment" );
   }
   catch ( IOException^ e ) 
   {
      Console::WriteLine(  "{0}: {1}", e->GetType()->Name, e->Message );
      return  -1;
   }

   
   // Print the values.
   Console::WriteLine( "\nThere are {0} values for {1}.", environmentKey->ValueCount.ToString(), environmentKey->Name );
   array<String^>^valueNames = environmentKey->GetValueNames();
   for ( int i = 0; i < environmentKey->ValueCount; i++ )
   {
      Console::WriteLine(  "{0,-20}: {1}", valueNames[ i ], environmentKey->GetValue( valueNames[ i ] )->ToString() );

   }
   
   // Close the registry key.
   environmentKey->Close();
}
using System;
using System.IO;
using System.Security.Permissions;
using Microsoft.Win32;

class RemoteKey
{
    static void Main(string[] args)
    {
        RegistryKey environmentKey;
        string remoteName;

        // Check that an argument was specified when the
        // program was invoked.
        if(args.Length == 0)
        {
            Console.WriteLine("Error: The name of the remote " +
                "computer must be specified when the program is " +
                "invoked.");
            return;
        }
        else
        {
            remoteName = args[0];
        }

        try
        {
            // Open HKEY_CURRENT_USER\Environment
            // on a remote computer.
            environmentKey = RegistryKey.OpenRemoteBaseKey(
                RegistryHive.CurrentUser, remoteName).OpenSubKey(
                "Environment");
        }
        catch(IOException e)
        {
            Console.WriteLine("{0}: {1}",
                e.GetType().Name, e.Message);
            return;
        }

        // Print the values.
        Console.WriteLine("\nThere are {0} values for {1}.",
            environmentKey.ValueCount.ToString(),
            environmentKey.Name);
        foreach(string valueName in environmentKey.GetValueNames())
        {
            Console.WriteLine("{0,-20}: {1}", valueName,
                environmentKey.GetValue(valueName).ToString());
        }

        // Close the registry key.
        environmentKey.Close();
    }
}
Imports System.IO
Imports System.Security.Permissions
Imports Microsoft.Win32


Public Class RemoteKey

    Shared Sub Main(commandLineArgs As String())
    
        Dim environmentKey As RegistryKey

        ' Check that an argument was specified when the 
        ' program was invoked.
        If commandLineArgs.Length = 0 Then
            Console.WriteLine("Error: The name of the remote " & _
                "computer must be specified as input on the " & _
                "command line.")
            Return
        End If

        Try
            ' Open HKEY_CURRENT_USER\Environment on a remote computer.
            environmentKey = RegistryKey.OpenRemoteBaseKey( _
                RegistryHive.CurrentUser, _
                commandLineArgs(0)).OpenSubKey("Environment")
        Catch ex As IOException
            Console.WriteLine("{0}: {1}", _
                ex.GetType().Name, ex.Message)
            Return
        End Try

        ' Print the values.
        Console.WriteLine("\nThere are {0} values For {1}.", _
            environmentKey.ValueCount.ToString(), environmentKey.Name)

        For Each valueName As String In environmentKey.GetValueNames()
            Console.WriteLine("{0,-20}: {1}", valueName, _
                environmentKey.GetValue(valueName).ToString())
        Next

        ' Close the registry key.
        environmentKey.Close()
    
    End Sub
End Class

Opmerkingen

Het register van de lokale computer wordt geopend als machineName dat het is String.Empty. De aangevraagde sleutel moet een hoofdsleutel op de externe computer zijn en wordt geïdentificeerd door de juiste RegistryHive waarde.

Als u een sleutel op afstand wilt openen, moeten zowel de server- als clientcomputers de externe registerservice uitvoeren en extern beheer hebben ingeschakeld.

Zie ook

Van toepassing op

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

Hiermee opent u een nieuwe registersleutel die de aangevraagde sleutel vertegenwoordigt op een externe computer met de opgegeven weergave.

public:
 static Microsoft::Win32::RegistryKey ^ OpenRemoteBaseKey(Microsoft::Win32::RegistryHive hKey, System::String ^ machineName, Microsoft::Win32::RegistryView view);
[System.Runtime.InteropServices.ComVisible(false)]
public static Microsoft.Win32.RegistryKey OpenRemoteBaseKey(Microsoft.Win32.RegistryHive hKey, string machineName, Microsoft.Win32.RegistryView view);
[<System.Runtime.InteropServices.ComVisible(false)>]
static member OpenRemoteBaseKey : Microsoft.Win32.RegistryHive * string * Microsoft.Win32.RegistryView -> Microsoft.Win32.RegistryKey
Public Shared Function OpenRemoteBaseKey (hKey As RegistryHive, machineName As String, view As RegistryView) As RegistryKey

Parameters

hKey
RegistryHive

De HKEY die moet worden geopend vanuit de RegistryHive opsomming.

machineName
String

De externe machine.

view
RegistryView

De registerweergave die moet worden gebruikt.

Retouren

De aangevraagde registersleutel.

Kenmerken

Uitzonderingen

hKey of view is ongeldig.

machineName is niet gevonden.

machineName is null.

De gebruiker beschikt niet over de benodigde registerrechten.

De gebruiker beschikt niet over de vereiste machtigingen om deze bewerking uit te voeren.

Opmerkingen

Het register van de lokale computer wordt geopend als machineName dat het is String.Empty. De aangevraagde sleutel moet een hoofdsleutel op de externe computer zijn en wordt geïdentificeerd door de juiste RegistryHive waarde.

Als u een sleutel op afstand wilt openen, moeten zowel de server- als clientcomputers de externe registerservice uitvoeren en extern beheer hebben ingeschakeld.

In de 64-bits versies van Windows worden delen van het register afzonderlijk opgeslagen voor 32-bits en 64-bits toepassingen. Er is een 32-bits weergave voor 32-bits toepassingen en een 64-bits weergave voor 64-bits toepassingen. Als view dat zo is Registry64 , maar op de externe computer een 32-bits besturingssysteem wordt uitgevoerd, wordt de weergave gebruikt door de Registry32 geretourneerde sleutel.

Van toepassing op