@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: Retrieves the type and data for the specified registry value !!!!C# Signature: /* Retrieves the type and data for the specified registry value. */ [DllImport("Advapi32.dll", EntryPoint = "RegGetValueW", CharSet = CharSet.Unicode, SetLastError = true)] internal static extern LONG RegGetValue( SafeRegistryHandle hkey, string lpSubKey, string lpValue, EnumLib.RFlags dwFlags, out EnumLib.RType pdwType, IntPtr pvData, ref DWORD pcbData); /* Retrieves the type and data for the specified registry value. */ [DllImport("Advapi32.dll", EntryPoint = "RegGetValueW", CharSet = CharSet.Unicode, SetLastError = true)] internal static extern LONG RegGetValue( EnumLib.HKEY hkey, string lpSubKey, string lpValue, EnumLib.RFlags dwFlags, out EnumLib.RType pdwType, IntPtr pvData, ref DWORD pcbData); !!!!VB Signature: Declare Function RegGetValue Lib "advapi32.dll" (TODO) As TODO !!!!User-Defined Types: /// <summary> /// http://msdn.microsoft.com/en-us/library/windows/desktop/ms724884(v=vs.85).aspx /// </summary> internal enum RFlags { /// <summary> /// Any /// </summary> Any = 65535, /// <summary> /// No defined value type. /// </summary> RegNone = 1, /// <summary> /// ??? /// </summary> Noexpand = 268435456, /// <summary> /// Bytes /// </summary> RegBinary = 8, /// <summary> /// Int32 /// </summary> Dword = 24, /// <summary> /// Int32 /// </summary> RegDword = 16, /// <summary> /// Int64 /// </summary> Qword = 72, /// <summary> /// Int64 /// </summary> RegQword = 64, /// <summary> /// A null-terminated string. /// This will be either a Unicode or an ANSI string, /// depending on whether you use the Unicode or ANSI functions. /// </summary> RegSz = 2, /// <summary> /// A sequence of null-terminated strings, terminated by an empty string (\0). /// The following is an example: /// String1\0String2\0String3\0LastString\0\0 /// The first \0 terminates the first string, the second to the last \0 terminates the last string, /// and the final \0 terminates the sequence. Note that the final terminator must be factored into the length of the string. /// </summary> RegMultiSz = 32, /// <summary> /// A null-terminated string that contains unexpanded references to environment variables (for example, "%PATH%"). /// It will be a Unicode or ANSI string depending on whether you use the Unicode or ANSI functions. /// To expand the environment variable references, use the ExpandEnvironmentStrings function. /// </summary> RegExpandSz = 4, RrfZeroonfailure = 536870912 } /// <summary> /// http://msdn.microsoft.com/en-us/library/windows/desktop/ms724884(v=vs.85).aspx /// </summary> internal enum RType { RegNone= 0, RegSz = 1, RegExpandSz = 2, RegMultiSz = 7, RegBinary = 3, RegDword = 4, RegQword = 11, RegQwordLittleEndian = 11, RegDwordLittleEndian = 4, RegDwordBigEndian = 5, RegLink = 6, RegResourceList = 8, RegFullResourceDescriptor = 9, RegResourceRequirementsList = 10, } !!!!Notes: Requires Windows Server 2003 SP1 !!!!Tips & Tricks: Please add some! !!!!Sample Code: uint pcbData = 0; EnumLib.RType type; var pvData = IntPtr.Zero; Api.advapi32.RegGetValue( EnumLib.HKEY.HKEY_CURRENT_USER, @"Software\LG Electronics\LG PC Suite IV\1.0", @"DS_URL", EnumLib.RFlags.Any, out type, pvData, ref pcbData); pvData = pvData.Reallocate(pcbData); Api.advapi32.RegGetValue( EnumLib.HKEY.HKEY_CURRENT_USER, @"Software\LG Electronics\LG PC Suite IV\1.0", @"DS_URL", type.ToFlag(), out type, pvData, ref pcbData); if (type == EnumLib.RType.RegSz) Console.WriteLine(pvData.ToUnicodeStr()); !!!!Alternative Managed API: Microsoft.Win32.Registry.GetValue() Documentation: RegGetValue@msdn on MSDN
Edit advapi32.RegGetValue
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.