您的位置:首页 > 编程语言 > C#

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

2011-03-07 15:46 232 查看
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打开注册表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: