c# 将十六进制字符串写入注册表

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;
using System.Threading;

namespace ChangeRegeditConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            string c = "a6,a4,18,64,fc,3e,99,55,a6,a4,18,64,fc,3e,99,55,16,6d,53,db,45,c1,f7,4f,a6,a4,18,64,fc,3e,99,55,a6,a4,18,64,fc,3e,99,55,ce,77,e2,a0,19,b5,99,c3,a6,a4,18,64,fc,3e,99,55,ef,c6,68,00,0e,28,fb,46,a6,a4,18,64,fc,3e,99,55,a6,a4,18,64,fc,3e,99,55";
            string[] d = c.Split(',');
            byte[] b = new byte[d.Count()];

            for (int i = 0; i < d.Count(); i++)
            {
                b[i] = Convert.ToByte("0x" + d[i], 16);
            }
            Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Ultimus", true).SetValue("Init2", b, RegistryValueKind.Binary);
            Console.WriteLine("成功!");
            Thread.Sleep(1000);
        }
    }
}

把十六进制字符串转成二进制。

 try
  {
  ConnectionOptions mConn = new ConnectionOptions();
  mConn.Username = user;
  mConn.Password = pwd;
  ManagementClass mClass = new ManagementClass();
  mClass.Scope = new ManagementScope("\\\\" + strIP + "\\root\\default", mConn);
  mClass.Path = new ManagementPath("StdRegProv");
  ManagementBaseObject inParams = mClass.GetMethodParameters("GetStringValue");
  inParams["hDefKey"] = 0x80000002;//field
  inParams["sSubKeyName"] = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer";//path
  inParams["sValueName"] = "InstallerLocation";//key
  ManagementBaseObject outParams = mClass.InvokeMethod("GetStringValue", inParams, null);
  string value = outParams["sValue"].ToString();//value
  }
  catch ( )
  {
  } 


连接远程服务器修改其注册表。

cmd-》regedit打开注册表。

原文地址:https://www.cnblogs.com/yangleiWPF/p/1974623.html