Win7x64, DelphiXe.Написал программу, которая регистрирует апплет панели управления (как здесь рекомендуют: http://msdn.microsoft.com/en-us/library/bb757044.aspx). Все отлично работает, апплет нормально регистрируется, отображается и запускается.
Но при удалении ключазарегистрировать, где оно зарегистрировано:
HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ControlPanel \ NameSpace \ {0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}
1010* ничего не происходит:
Создать:
...
var reg1:tregistry;key:string;
begin
key:='SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\ {0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}';
reg1:=tregistry.Create;
reg1.RootKey:=HKEY_LOCAL_MACHINE;
reg1.Access: = KEY_WOW64_64KEY + KEY_ALL_ACCESS;
if reg1.Openkey(key,true)=true then showmessage('ok');
reg1.Closekey;
reg1.free;
end;
Удалить:
procedure TForm1.Button1Click (Sender: TObject);
var reg1:tregistry; key:string;
begin
reg1: = tregistry.Create;
reg1.RootKey: = HKEY_LOCAL_MACHINE;
reg1.Access: = KEY_WOW64_64KEY + KEY_ALL_ACCESS;
key: ='SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{0052D9FC-6764-4D29-A66F-2F3BD9E2BB40}';
if reg1.KeyExists (Key)=true then Showmesage ('Key exists'); // work
if reg1.DeleteKey (Key)=true then Showmesage ('Ok'); // ! not work !
Showmesage (inttostr(getlasterror)); // show "0"
reg1.Free;
end;
Ошибки любые не выделяются, но ключ не уходит. Программа запускаетсяиз-под учетной записи админа (+ тоже создает этот ключ). Через Regedit.exe ключ виден и можно удалить.
Что может помешать удалению?: (