根据设置为注册表设置值

时间:2013-10-25 21:17:51

标签: c# visual-studio-2010

我的情况/问题的目标是我想将getValue的setValue设置为注册表中的目标。我不太熟悉get / sets,所以任何帮助都会很棒。如果您需要我的任何其他信息,请告诉我。

namespace RegistrySetter
{

public class Ironman : CodeActivity
{
    public InArgument<string> keypath { get; set; }
    public OutArgument<string> TextOut { get; set; }


    protected override void Execute(CodeActivityContext context)
    {
        string KeyPath = this.keypath.Get(context);

        context.SetValue<string>(this.TextOut, KeyPath);
    }

}

}

1 个答案:

答案 0 :(得分:1)

要获取注册表值,您可能会使用Registry.GetValue。您只需使用上下文来设置输出参数。

一个例子:

using System;
using System.Activities;
using Microsoft.Win32;
using System.IO;

public class GetRegistryValue : CodeActivity
{
    [RequiredArgument]
    public InArgument<string> KeyPath { get; set; }
    public OutArgument<string> TextOut { get; set; }

    protected override void Execute(CodeActivityContext context)
    {
        string keyPath = this.KeyPath.Get(context);
        string keyName = Path.GetDirectoryName(keyPath);
        string valueName = Path.GetFileName(keyPath);
        object value = Registry.GetValue(keyName, valueName, "");
        context.SetValue(this.TextOut, value.ToString());
    }
}

此处KeyPath类似于:HKEY_CURRENT_USER\Software\7-Zip\Path其中Path实际上是值名称,HKEY_CURRENT_USER\Software\7-Zip是键名。 如果要设置注册表值,请查看Registry.SetValue