acces violation - na niektorych komp..

0

Oto procedura na skojarzenia plików:

function SetAssociation(const Ext: String; const Name, Desc, Command, Icon: String): Boolean;
var
  R: TRegistry;
begin
  Result := False;
  R := TRegistry.Create;
  try
    R.RootKey := HKEY_CLASSES_ROOT;
    if R.OpenKey('' + Ext, True) then
    begin
      R.WriteString('', Name);
      R.CloseKey;
      if R.OpenKey('' + Name, True) then
      begin
        R.WriteString('', Desc);
        R.CloseKey;
        if R.OpenKey('' + Name + '\shell\open\command', True) then
        begin
          R.WriteString('', Command);
          R.CloseKey;
          Result := True;
          if (Icon <> '') and R.OpenKey('' + Name + '\DefaultIcon', True) then
          begin
            R.WriteString('', Icon);
            R.CloseKey;
          end;
        end;
      end;
    end;
  finally
    R.Free;
  end;
end;

I z niewiadomych mi przyczyn, na niektórych komputerach (systemy XP) występuje:

Access violation at address 77F5Ac7d in module 'ntdll.dll'. Write of address 00404A1D

O dziwo, na innych działa (też z XP)... co jest grane?

0

:-0
Poważny problem! Ja mam swoją hipotezę - może te kompy, na których nie działało pobrały jakiś update służący do ochrony Rejestru? A może to sprawa antywirusów?

0

[quoteI z niewiadomych mi przyczyn, na niektórych komputerach (systemy XP) występuje:

Access violation at address 77F5Ac7d in module 'ntdll.dll'. Write of address 00404A1D

O dziwo, na innych działa (też z XP)... co jest grane?

</quote>

kwestia uprawnień bodajże nie odczytasz nic z rejestru nie będąc administratorem lub nie mając jego uprawnień

0

Korzystaj z HKEY_CURRENT_USER

0

Shit wiedziaem że o tym zapomniałem.. dzieki za zauważenie błędu... dodam msgboxa i bedzie ql, no chyba żeby zmieniac uprawnienia, ale to już wchodzi za głęboko

1 użytkowników online, w tym zalogowanych: 0, gości: 1