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

OCX in neues Verzeichnis verschieben


1 reply to this topic

trutmrol

trutmrol
  • Members
  • 94 posts

Posted 23 September 2002 - 15:24

Hallo,

mein Setup Version 1 installiert OCX-Datei unter '\Program\Test1' (Self-Registered u. Shard).

Nun soll das gleiche OCX beim Setup Version 2
unter system32 installiert werden und am alten
ort 'Test1' geloescht werden.

Frage: Wie ist das vorgehen um Dateien mit dem gleichen
         Setup ohne 'UnInstall' in ein anderes Verzeichnis zu
         verschiebe (installieren).

Problem: Bei der DeInstallation will das Setup die Datei am alten Ort deregistrieren!
Thanks, Roland

sebastian

sebastian
  • Members
  • 43 posts

Posted 26 September 2002 - 07:46

hallo!

am einfachsten ist es, wenn du einfach ein update setup machst in dem du sämtliche dateiroutinen ausführst (alte ocx löschen und deregistrieren, neue ocx kopieren und registrieren)

Wichtig ist nur, daß du die GUID deines Updatesetups wieder aus der Registry UND das Installverzeichnis auf dem Rechner löscht, so daß das Setup nicht deinstallierbar wird!

Mal so aus einem Testprojekt kopiert (Win2000):

Code Sample


function EntferneSpurenDesUpdatesVomPC()
   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;



Schreib mal, obs klappt... ;)

lg Sebastian


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