0

Windows レジストリ操作用のDelphi XE2 プロジェクトが 1 つあります。**HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000001}** の下にあるすべてのサブノードを削除する必要があるため、次のコードを定義しました。

function SHDeleteKey(key: HKEY; SubKey: PWideChar): Integer; stdcall; external 'shlwapi.dll' name 'SHDeleteKeyW';
..
..
..
..
..
procedure TMainForm.BitBtn02Click(Sender: TObject);
var
  RegistryEntry : TRegistry;
begin
  RegistryEntry := TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);
  RegistryEntry.RootKey := HKEY_CLASSES_ROOT;
  if (RegistryEntry.KeyExists('CLSID\{00000000-0000-0000-0000-000000000001}\')) then
    begin
      Memo01.Font.Color := 3992580;
      Memo01.Lines.Add('Windows Registry Entry Has Been Found In Your System');
      RegistryEntry.Access:= KEY_WRITE or KEY_WOW64_64KEY;
      SHDeleteKey(HKEY_CLASSES_ROOT, PWideChar('CLSID\{00000000-0000-0000-0000-000000000001}'));
      RegistryEntry.CloseKey();
      RegistryEntry.Free;
      Memo01.Font.Color := 16756480;
      Memo01.Lines.Add('Windows Registry Entry Has Been Deleted Successfully');
    end
  else
    begin
      Memo01.Font.Color := 7864575;
      Memo01.Lines.Add('Windows Registry Entry Has Not Been Found In Your System');
    end;
end;

しかし、何も起こっていません。それから私は試しました

function SHDeleteKey(key: HKEY; SubKey: PChar): Integer; stdcall; external 'shlwapi.dll';  

しかし、「エントリポイントが見つかりません」という別の問題があります。

4

2 に答える 2