Проблеммы с RegCreateKeyEx
От: Healer  
Дата: 27.02.06 17:11
Оценка:
Здравствуйте уважаемые.
Необходимо проверить создан ли ключь в реестре, либо просто открыт при выполнении функции 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 и т.п.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.