Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Реестр   Найти похожие ветки 

 
illy   (2005-10-13 22:44) [0]

Приветствую!
Помогите разобраться.
Имеется процедура в которую передаются два параметра, 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(файл не найден), и создает файл нулевой длинны.
Подскажите в чем проблема?


 
GanibalLector ©   (2005-10-14 01:52) [1]

>Softvare
Нет такого. Есть SoftWare

Код в [0] рабочий. Вызывайте правильно ;) Например :
ToFile(HKEY_LOCAL_MACHINE,"Software\Borland");


 
evvcom ©   (2005-10-14 14:02) [2]

Инструмент такой есть, regedit.exe называется. Иногда позволяет прояснить картину, ну хотя бы по поводу правильности написания имен.


 
illy   (2005-10-21 02:23) [3]


> Код в [0] рабочий. Вызывайте правильно ;) Например :
> ToFile(HKEY_LOCAL_MACHINE,"Software\Borland");

Если можно, подробней пожалуйста, не разберусь никак.


 
illy   (2005-10-21 02:43) [4]


> Код в [0] рабочий. Вызывайте правильно ;) Например :
> ToFile(HKEY_LOCAL_MACHINE,"Software\Borland");

Вызов идет уменя так:
procedure TForm1.Button2Click(Sender: TObject);
begin
ToFile(HKEY_LOCAL_MACHINE,"Software");
end;



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
9-1119391313
SOL
2005-06-22 02:01
2005.11.13
delphiX


6-1122448409
ZSergey
2005-07-27 11:13
2005.11.13
ServerSocket и ClientSocket


1-1130156823
Its2L8
2005-10-24 16:27
2005.11.13
Автоматическая сборка проекта


4-1124876130
Scordion
2005-08-24 13:35
2005.11.13
Как сделать форму поверх всех приложений?


2-1130125812
SamProf
2005-10-24 07:50
2005.11.13
работа с БД без установки BDE