#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    1
    Rep Power
    0

    How to add hex string to Registry using C# ?


    hear i have a hex value, i don't know what was the original value just this :

    Code:
    [HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile]
    "Username"="test"
    "Password"=hex:50,d6,e6,e9,ee,f0,cf,f2,6e,64,03,ad
    I want to add these values to registry, I tried using command promp and administrator Privileges with the following command for username :

    Code:
    REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile /v Username /d test /f
    it worked like a charm. Then I added the following line to app.manifest File in VS2010 :

    Code:
    <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
    in order to get administrative privileges and I used the following command:

    Code:
    private string GETCMD(string com)
        {
            string tempGETCMD = null;
            Process CMDprocess = new Process();
            System.Diagnostics.ProcessStartInfo StartInfo = new System.Diagnostics.ProcessStartInfo();
            StartInfo.FileName = "cmd"; //starts cmd window
            StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            StartInfo.CreateNoWindow = true;
            StartInfo.RedirectStandardInput = true;
            StartInfo.RedirectStandardOutput = true;
            StartInfo.UseShellExecute = false; //required to redirect
            CMDprocess.StartInfo = StartInfo;
            CMDprocess.Start();
            System.IO.StreamReader SR = CMDprocess.StandardOutput;
            System.IO.StreamWriter SW = CMDprocess.StandardInput;
            SW.WriteLine(com);
            //insert your other commands here
            SW.WriteLine("exit"); //exits command prompt window
            tempGETCMD = SR.ReadToEnd(); //returns results of the command window
            SW.Close();
            SR.Close();
            return tempGETCMD;
        }

    It returns that " The operation completed successfully " but nothing is changed in registry

    I tried setting value directly to registry using c# functions but it didn't work.

    whats wrong here?
    how i can set these values to registry ?
    why it is working by command prompt when I type the command manually but not programmatic, even when the program is started as administrator?
  2. #2
  3. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2012
    Posts
    187
    Rep Power
    83
    It may be that your app runs as a 32 bit program under a 64 bit OS. Thus, I would check for the data that you created under the Wow6432Node subkey of HKEY_LOCAL_MACHINE\Software.

    Check this link out.

IMN logo majestic logo threadwatch logo seochat tools logo