Einzelnen Beitrag anzeigen

Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Systemvariable PATH ändern

  Alt 29. Aug 2007, 01:20
Zitat von kuba:
Hallo,

ich möchte eine Installationsroutine schreiben, dabei muss die Systemvariable PATH geändert werden.
Das funktioniert schon, jetzt benötige ich jedoch noch den "Deinstallationscode" um die Variable wieder zu entfernen, im PATH steht die Variable jetzt "mitten drin", wie kann ich meinen hinzugefügten Pfad wieder entfernen ?

KUBA
Zunächst liest du den Pfad wieder wie oben aus. Danach kannst du mit der Funktion pos() ermitteln, an welcher Stelle in der PATH-Variable der Pfad zu deinem Programm steht. Mit copy() kann man dann aus dem String den Teil vor dieser Stelle und den Teil danach herausfischen, und schließlich muss man diese beiden nur noch zusammenfügen und den so erhaltenen Wert wieder in die Registry schreiben.

Ach ja, was mir noch auffällt: deine Prozedur SetEnviron kann man noch ein wenig verbessern (schneller und ressourcenschonender machen), indem man ein paar Zeilen ändert/austauscht:
Delphi-Quellcode:
procedure SetEnviron;
var registrierung:TRegistry; //uses registry nicht vergessen
    PW :string;
  begin
      begin
      Registrierung:=Tregistry.Create;
      Registrierung.Rootkey:=HKEY_LOCAL_MACHINE;
      Registrierung.OpenKey('\SYSTEM\CurrentControlSet\Control\Session Manager\Environment',true);
      PW := Registrierung.ReadString ('Path');
      PW := PW + (';c:\test');
      showmessage(PW);
      Registrierung.WriteString('Path', PW);
      Registrierung.free;
      end;
end;
Da du bei OpenKey als zweiten Parameter true übergibst, wird der Schlüssel automatisch erzeugt, falls er nicht schon existiert. Damit kann man sich den separaten Aufruf von CreateKey sparen. Jedoch solltest du vielleicht noch den Rückgabewert von OpenKey überprüfen. Ist dieser True, dann konnte der Schlüssel geöffnet bzw. erstellt werden. Wenn der Rückgabewert False ist, konnte der Schlüssel nicht geöffnet werden.


MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat