bugroger
asked on
get class string of registry key
How can i get the classname of a registry key?
just like this:
var
openkeyhandle : hkey;
classname : string;
begin
RegOpenKeyEx(HKEY_LOCAL_MA CHINE, PChar('reg_subkey'), 0,KEY_ALL_ACCESS, OpenKeyHandle);
classname := getClassname(openKeyHandle );
regclosekey(openkeyhandle) ;
end;
I've tried RegQueryInfoKey and RegEnumKeyEx but
i couldn't get the classname:
var
openkeyhandle : hkey;
ClassName : array of char;
classnameLength : Cardinal;
begin
RegOpenKeyEx(HKEY_LOCAL_MA CHINE, PChar('reg_subkey'), 0,KEY_ALL_ACCESS, OpenKeyHandle);
SetLEngth(ClassName, 255);
ClassNameLength := Length(ClassName);
RegQueryInfoKey (OpenKeyHandle, PCHAR(ClassName), @ClassNameLength,
NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL);
SetLEngth(ClassName, 0);
regclosekey(openkeyhandle) ;
end;
I hope anybody can help me!!!
Bug
just like this:
var
openkeyhandle : hkey;
classname : string;
begin
RegOpenKeyEx(HKEY_LOCAL_MA
classname := getClassname(openKeyHandle
regclosekey(openkeyhandle)
end;
I've tried RegQueryInfoKey and RegEnumKeyEx but
i couldn't get the classname:
var
openkeyhandle : hkey;
ClassName : array of char;
classnameLength : Cardinal;
begin
RegOpenKeyEx(HKEY_LOCAL_MA
SetLEngth(ClassName, 255);
ClassNameLength := Length(ClassName);
RegQueryInfoKey (OpenKeyHandle, PCHAR(ClassName), @ClassNameLength,
NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL);
SetLEngth(ClassName, 0);
regclosekey(openkeyhandle)
end;
I hope anybody can help me!!!
Bug
ASKER
i want to get the registry path form a HKEY.
ex.:
RegOpenKeyEx(HKEY_LOCAL_MA
s := getClassName(OpenKeyHandle
-> s = 'HKEY_LOCAL_MACHINE\Softwa
ASKER
I think i have chosen the wrong expression.
I mean "Class String".
I mean "Class String".
Hi Barry, look at the documentation about RegEnumKeyEx, there you'll find that there is really something like a class name for each registry key. But only in NT based systems. And it's not what Bug meant. Just wanted to mention that, because you said, there would be no class names in the registry... :-)
Bug, what you want is not possible by using documented APIs, I'm sorry... :-(
Regards, Madshi.
Bug, what you want is not possible by using documented APIs, I'm sorry... :-(
Regards, Madshi.
mmm yep i see what you mean and should be returned in second param of RegQueryInfoKey as you have done above but none of my tests worked.
i know RegQueryInfoKey was working cause i used all the values instead of nil's and could get all other infos like amount of subkeys and amount of values etc but no class string .maybe it just dont work,i dont see any point in needing it or any code in other language that works either (doesnt work in vc++ either).
i know RegQueryInfoKey was working cause i used all the values instead of nil's and could get all other infos like amount of subkeys and amount of values etc but no class string .maybe it just dont work,i dont see any point in needing it or any code in other language that works either (doesnt work in vc++ either).
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Sorry, but your code does not work Barry.
I think, like Madshi said,
it only works "in NT based systems".
And it's not really what i want.
But you have answered "this" question and so
you will get the points :-)
Madshi,
you will get some points too!
Look at Question "Points for Madshi"
Thanks,
Bug
I think, like Madshi said,
it only works "in NT based systems".
And it's not really what i want.
But you have answered "this" question and so
you will get the points :-)
Madshi,
you will get some points too!
Look at Question "Points for Madshi"
Thanks,
Bug
thanks,i am using win2k so the code works fine for me.
says in the help file about differences for nt and win95,the return handles have difference results on each if they are invalid etc..
says in the help file about differences for nt and win95,the return handles have difference results on each if they are invalid etc..
Hi Barry, Bug wanted to have the key name from the key handle. He was talking about the "class name" but didn't mean it.
er registry keys dont have classnames ?
they are just strings or dwords etc..
what information exactly are you trying to get ?