Показать сообщение отдельно
  #1  
Старый 27.02.2010, 22:03
guranvir guranvir вне форума
Начинающий
 
Регистрация: 19.01.2010
Сообщения: 113
Репутация: 11
По умолчанию Записать в реестр значение через WinAPI

Есть код:
Код:
procedure TForm1.N7Click(Sender: TObject);
var
PHKRESULT:hkey;
err:integer;
begin
err:=RegOpenKey(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf',PHKRESULT);
if err<>ERROR_SUCCESS then
begin
     err:=RegCreateKey(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\',PHKRESULT);
     if err<>ERROR_SUCCESS then
      begin
      ShowMessage('Ошибка при создании ключа!');
      exit;
       end
       else
       begin
       err:=RegOpenKey(HKEY_LOCAL_MACHINE,
       '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf'
       ,PHKRESULT);
     if err<>ERROR_SUCCESS then
     begin
     ShowMessage('Ошибка при открытии ключа!');
      exit;
     end
     else
     begin
     err:=RegSetValue(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf',REG_SZ,'@SYS DoesNotExists',sizeof('@SYS DoesNotExists'));
     if err<>ERROR_SUCCESS then
     begin
     ShowMessage('Ошибка при записи ключа!');
      exit;
     end

     end;
       end;
       end
else
begin
err:=RegOpenKey(HKEY_LOCAL_MACHINE,
       'SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf'
       ,PHKRESULT);
     if err<>ERROR_SUCCESS then
     begin
     ShowMessage('Ошибка при открытии ключа!');
      exit;
     end
     else
     begin
     err:=RegSetValue(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf',REG_SZ,'@SYS DoesNotExists',sizeof('@SYS DoesNotExists'));
     if err<>ERROR_SUCCESS then
     begin
     ShowMessage('Ошибка при записи ключа!');
      exit;
     end

end;
end;
end;
Но он не работает, помогите исправить. Исходная идея: http://ru.wikipedia.org/wiki/Autorun.inf