![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Реестр [D6, WinXP]
illy © (2005-10-13 22:44:00)Приветствую!
Помогите разобраться.
Имеется процедура в которую передаются два параметра, HKEY_LOCAL_MACHINE и 'Softvare'.
procedure TForm1.ToFile(Hkey_: HKEY; KeyStr_: string);
var
Key: HKEY;
ErrorCode: integer;
ver: TOSVERSIONINFO;
TokenHandle: THandle;
tp, prevst: TTokenPrivileges;
rl:DWORD;
lpMsgBuf: PChar;
begin
ErrorCode:=RegOpenKeyEx(Hkey_, PChar(KeyStr_), 0, KEY_READ, Key);
if ErrorCode=ERROR_SUCCESS then
try
ver.dwOSVersionInfoSize := Sizeof(ver);
GetVersionEx(ver);
if ver.dwPlatformId=VER_PLATFORM_WIN32_NT then begin
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,TokenHandle);
LookupPrivilegeValue(Nil,'SeBackupPrivilege',tp.Privileges[0].Luid);
tp.PrivilegeCount:=1;
tp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(TokenHandle, false, tp, SizeOf(prevst), prevst, rl);
end;
ErrorCode:=RegSaveKey(Key, 'tempreg.tmp', nil);
finally
RegCloseKey(Key);
end;
if ErrorCode<>ERROR_SUCCESS then MessageBox(0, 'Ошибка', '', MB_ICONERROR);
end;
RegSaveKey возвращает ошибку, если не ошибаюсь код 2(файл не найден), и создает файл нулевой длинны.
Подскажите в чем проблема?
illy (2005-10-21 02:43:00) [1]
> Код в [0] рабочий. Вызывайте правильно ;) Например :
> ToFile(HKEY_LOCAL_MACHINE,'Software\Borland');
Вызов идет уменя так:
procedure TForm1.Button2Click(Sender: TObject);
begin
ToFile(HKEY_LOCAL_MACHINE,'Software');
end;
illy (2005-10-21 02:23:00) [2]
> Код в [0] рабочий. Вызывайте правильно ;) Например :
> ToFile(HKEY_LOCAL_MACHINE,'Software\Borland');
Если можно, подробней пожалуйста, не разберусь никак.
evvcom (2005-10-14 14:02:00) [3]Инструмент такой есть, regedit.exe называется. Иногда позволяет прояснить картину, ну хотя бы по поводу правильности написания имен.
GanibalLector (2005-10-14 01:52:00) [4]>Softvare
Нет такого. Есть SoftWare
Код в [0] рабочий. Вызывайте правильно ;) Например :
ToFile(HKEY_LOCAL_MACHINE,'Software\Borland');