Click here to Skip to main content
16,008,719 members
Home / Discussions / C#
   

C#

 
AnswerRe: PInvoke registry value - Help please. Pin
Richard MacCutchan12-Nov-11 0:11
mveRichard MacCutchan12-Nov-11 0:11 
AnswerRe: PInvoke registry value - Help please. Pin
Luc Pattyn12-Nov-11 1:50
sitebuilderLuc Pattyn12-Nov-11 1:50 
AnswerRe: PInvoke registry value - Help please. Pin
CCodeNewbie12-Nov-11 2:42
CCodeNewbie12-Nov-11 2:42 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan12-Nov-11 3:20
mveRichard MacCutchan12-Nov-11 3:20 
AnswerRe: PInvoke registry value - Help please. Pin
Luc Pattyn12-Nov-11 4:20
sitebuilderLuc Pattyn12-Nov-11 4:20 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan12-Nov-11 5:38
mveRichard MacCutchan12-Nov-11 5:38 
GeneralRe: PInvoke registry value - Help please. Pin
CCodeNewbie12-Nov-11 4:22
CCodeNewbie12-Nov-11 4:22 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan12-Nov-11 6:30
mveRichard MacCutchan12-Nov-11 6:30 
CCodeNewbie wrote:
I am in way over my head here

Try the following:
C#
public static readonly UIntPtr HKEY_LOCAL_MACHINE = new UIntPtr(0x80000002u);

public const string lpSubKey = "SECURITY\\Policy\\PolEdtEv";

public const int KEY_READ = 0x20019;


[DllImport("advapi32.dll", EntryPoint = "RegOpenKeyEx")]
public static extern int RegOpenKeyEx(UIntPtr hKey, string lpSubKey, int ulOptions, int samDesired, out UIntPtr phkResult);

[DllImport("advapi32.dll", EntryPoint = "RegQueryValueEx")]
public static extern int RegQueryValueEx(UIntPtr hKey, string pSubKey, int reserved, out uint lpType, byte[] lpData, ref int lpcbData);

private static string ReadRegKey(UIntPtr HKEY_LOCAL_MACHINE, string lpSubKey, string valueName)
{
    UIntPtr hKey;
    string keyValue = null;
    // final parameter is the returned key from RegOpen
    
    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, 0, KEY_READ, out hKey) == 0)
    {
        Console.WriteLine(valueName);

        int size = 1024;
        uint type = 0;
        // I could not get StringBuffer to work here
        byte[] keyBuffer = new byte[1024];

        if (RegQueryValueEx(hKey, valueName, 0, out type, keyBuffer, ref size) == 0)
            keyValue = keyBuffer.ToString();

        Console.WriteLine(keyValue);
    }
    return keyValue;
}

I do not have the exact key on my system but in general this code should work. Also you may need to run with admin privilege as HKEY_LOCAL_MACHINE is a protected hive. You should also be aware that the key value you are extracting is not a printable string so you will probably see garbage on the screen from the final WriteLine() call.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman



GeneralRe: PInvoke registry value - Help please. Pin
Luc Pattyn12-Nov-11 6:59
sitebuilderLuc Pattyn12-Nov-11 6:59 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan12-Nov-11 7:08
mveRichard MacCutchan12-Nov-11 7:08 
AnswerRe: PInvoke registry value - Help please. Pin
Luc Pattyn12-Nov-11 7:28
sitebuilderLuc Pattyn12-Nov-11 7:28 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan12-Nov-11 7:35
mveRichard MacCutchan12-Nov-11 7:35 
GeneralRe: PInvoke registry value - Help please. Pin
Luc Pattyn12-Nov-11 7:44
sitebuilderLuc Pattyn12-Nov-11 7:44 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan12-Nov-11 8:10
mveRichard MacCutchan12-Nov-11 8:10 
GeneralRe: PInvoke registry value - Help please. Pin
CCodeNewbie12-Nov-11 22:58
CCodeNewbie12-Nov-11 22:58 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan13-Nov-11 1:23
mveRichard MacCutchan13-Nov-11 1:23 
GeneralRe: PInvoke registry value - Help please. Pin
CCodeNewbie13-Nov-11 2:26
CCodeNewbie13-Nov-11 2:26 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan13-Nov-11 3:37
mveRichard MacCutchan13-Nov-11 3:37 
GeneralRe: PInvoke registry value - Help please. Pin
CCodeNewbie13-Nov-11 4:13
CCodeNewbie13-Nov-11 4:13 
GeneralRe: PInvoke registry value - Help please. Pin
Richard MacCutchan13-Nov-11 4:30
mveRichard MacCutchan13-Nov-11 4:30 
AnswerRe: PInvoke registry value - Help please. Pin
Luc Pattyn12-Nov-11 4:35
sitebuilderLuc Pattyn12-Nov-11 4:35 
AnswerRe: PInvoke registry value - Help please. Pin
biop.codeproject13-Nov-11 15:05
biop.codeproject13-Nov-11 15:05 
GeneralRe: PInvoke registry value - Help please. Pin
CCodeNewbie13-Nov-11 22:14
CCodeNewbie13-Nov-11 22:14 
QuestionForm.Show() in a backgroundworker doesn't work Pin
teknolog12311-Nov-11 22:41
teknolog12311-Nov-11 22:41 
AnswerRe: Form.Show() in a backgroundworker doesn't work Pin
Richard MacCutchan11-Nov-11 22:53
mveRichard MacCutchan11-Nov-11 22:53 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.