27.02.2010, 22:03
|
Начинающий
|
|
Регистрация: 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
|