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!
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.
OCX in neues Verzeichnis verschieben
Started by
trutmrol
, Sep 23 2002 15:24
1 reply to this topic
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):
Schreib mal, obs klappt...
lg Sebastian
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
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka