Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

GUID ändern


3 replies to this topic

JH

JH
  • Members
  • 12 posts

Posted 17 October 2002 - 14:02

Hallo IS-Gemeinde,

kleine Vorgeschichte zum Problem:
Wir vertreiben zwei Setups die, bis auf ein paar Kleinigkeiten, das gleiche Produkt installieren. Nun hat man sich dafür entschieden nur noch eine Setupvariante zu warten, was auch mehr als vernünftig ist.

Problem:
Da die zwei Setup's verschiedene GUID's besitzen habe ich das Problem, das der Kundenkreis dessen Setup wegrationalisiert wird beim nächsten Update eine Erstinstallation durchführen muss (die GUID ist auf den Rechnern nicht bekannt), obwohl im Prinzip nur einige Dateien ausgetauscht werden müssen.

Frage:
Gibt es ein Weg aus dem Dilemma. Habe schon daran gedacht die GUID auf den betroffenen Maschinen vor der Installation (in der Registry) "umzubiegen", bin mir aber nicht sicher ob dies geht bzw. ob dies eine gute Idee ist.


Gruß und Merci für jeden Beitrag
Jürgen

sebastian

sebastian
  • Members
  • 43 posts

Posted 17 October 2002 - 15:36

Hallo Jürgen!

Versuch doch, die nächsten Updates allgemein installierbar zu machen - unabhängig von der GUID des Hauptprogrammes!

Dafür müsstest du nur vor der Installation des Patches feststellen, wo auf dem PC des Anwenders sich das Programm befindet (eindeutige Datei suchen? in der Registry beim Programmstart dieses Verzeichnis eintragen?).

Und damit du Patches nicht deinstallieren kannst, entfernst du jegliche Informationen dieses von dem Ziel PC mit einer Routine wie etwa dieser:

Code Sample


function RemovePatchInfos()
   STRING szTitle, szDir, szKey;
   NUMBER nFlag, nReturn;
begin          
  szKey   = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + PRODUCT_GUID;
  // MessageBox (szKey, INFORMATION);
  szDir=PROGRAMFILES^"\\InstallShield Installation Information"^PRODUCT_GUID;
   
  nFlag   = ALLCONTENTS;
  nReturn = DeleteDir(szDir, nFlag);

  if (nReturn < 0) then
     // MessageBox("Verzeichnis konnte nicht gelöscht werden!", SEVERE);
  else
     // SprintfBox(INFORMATION, szTitle, "%s erfolgreich gelöscht.", szDir);
  endif;
 
  RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);

  if (RegDBDeleteKey(szKey) < 0) then
      //- SprintfBox(INFORMATION, szTitle, "Fehler: %s nicht erfolgreich gelöscht.", szKey);
  else
      //- SprintfBox(INFORMATION, szTitle, "%s erfolgreich gelöscht.", szKey);
  endif;

end;




Hilft das? ;)

lg sebastian
Alle menschlichen Fehler sind Ungeduld,
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka

JH

JH
  • Members
  • 12 posts

Posted 18 October 2002 - 07:02

moin Sebastian,

werde ich mal gleich probieren.

Danke und Gruß
Jürgen

sebastian

sebastian
  • Members
  • 43 posts

Posted 18 October 2002 - 08:04

na dann viel spass.... schreib mal, obs klappt oder nicht... (bei mir schon ;) )

lg sebastian
Alle menschlichen Fehler sind Ungeduld,
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka