Здравствуйте уважаемые.
Необходимо проверить создан ли ключь в реестре, либо просто открыт при выполнении функции RegCreateKeyEx. Для тестирования данного куска кода сделал консольное приложение.
Пр.1
var
phKey: hKey;
lpClass: PAnsiChar;
lpdwDisposition: PDWORD;
flag:boolean;
rez:integer;
begin
RegCreateKeyEx(HKEY_CURRENT_USER, 'Software\TESTAPP',0,lpClass,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, nil,phKey,lpdwDisposition);
if word(lpdwDisposition)=REG_CREATED_NEW_KEY then
begin
showmessage('Создан'+ inttostr(rez));
flag:=true;
end;
if word(lpdwDisposition)=REG_OPENED_EXISTING_KEY then
begin
showmessage('Открыт '+ inttostr(rez));
flag:=false;
end;
end.
При этом ключ отказывает создаваться вообще. Заметил странную особенность, вот так вот ключ создается:
Пр.2
begin
RegCreateKeyEx(HKEY_CURRENT_USER, 'Software\TESTAPP',0,lpClass,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, nil,phKey,lpdwDisposition);
end.
Хотя принципиального отличия мой воспаленный мозг разглядеть не сумел. Может вы поможете?
ЗЫ: В примере 1 вообще никакие функции после RegCreateKeyEx не срабатывают, в том числе readln showmessage и т.п.