AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ein Fass nach dem anderen geht auf

Ein Thema von freimatz · begonnen am 14. Nov 2020 · letzter Beitrag vom 19. Nov 2020
Antwort Antwort
Seite 1 von 3  1 23      
freimatz

Registriert seit: 20. Mai 2010
1.444 Beiträge
 
Delphi 11 Alexandria
 
#1

ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 11:56
Woanders schrieb ich
Zitat von freimatz:
Seit Monaten mache ich an einer Verbesserung rum und ein Fass nach dem anderen geht auf. Gibts hier im Forum einen Bereich zum sich ausheulen?
Ich versuche es mal hier. Doch der Reihe nach:
Ich habe ein Programm entwickelt. Das hat begonnen vor über 30 Jahren mit Turbo-Pascal 3.0 und ist inzwischen bei Delphi Berlin. Es gibt viele Produkte (>100) die auf der Software basieren und man kann alle miteinander auch kombinieren. In ca. 99% der Fälle sind es einzelne PCs, es gibt aber auch Installation in Netzwerken und virtualisierten Umgebungen. Geliefert wurde das Programm früher auf Diskette, dann CD. Inzwischen gibt es auch die Möglichkeit einer Neu- oder Updateinstallation vom Internet. Seit einigen Jahren betreue ich das Projekt nur noch in meiner Freizeit.

Früher wurde das Programm installiert in einen beliebigen Windowsordner z.B. C:\BlaFasel. Das Hauptprogramm hat auf Bedarf noch Dateien nachinstalliert, geändert und Einstellungen in Ini-Dateien geschrieben und diese auch in diesem Ordner abgelegt. Es gab keine Deinstallation, wenn man es loswerden wollte hat man einfach den Ordner gelöscht. So weit so gut - oder eben auch nicht.
Wenn man heutzutage das dann in den Windows Programmordner installieren möchte gibt es natürlich Probleme. Das will ich seit einiger Zeit in Ordnung bringen. Also
1. Fass: Dateien in die jeweiligen Ordner verteilen. Programmdateien in %ProgramFiles%, Anwendungsdaten in CSIDL_APPDATA, Anwenderdaten in CSIDL_PERSONAL oder so ähnlich.
Zum Deinstallieren dann einfach den Ordner löschen ist dann nicht mehr möglich. Also
2. Fass: Ein Deinstallationsprogramm muss her. Das ist weitgehend wie Wasser kochen. Aber das Deinstallationsprogramm muss dann auch bei Windows eingetragen werden. Das geht ja noch aber, aber Widnos mag das nicht so einfach. Also
3. Fass: Setup muss Deinstallation mit Administratorrechte eintragen. Nach wie vor muss aber das Übrige mit "normalen" Rechten laufen. Dazu muss das Programm mit Administratorrechte etwas mitteilen. Also
4. Fass: Interprozesskommunikation. Da bin ich nun
(Dazwischen kamen noch die Fässer: Signierung mit Zertifikate und Manifeste)

Seit fünf Monaten mache ich nun daran rum, dass man das Programm in den Windows Programmordner installieren. Und nach jedem Fass geht ein neues auf.
Was mache ich falsch? Dann bitte ich im Informationen.
Oder ist das halt so ein komplexes Thema? Dann bitte ich um Beileidsbekundungen
(Und Beiträge von Kathinka sind auch erwünscht.)
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 11:58
InnoSetup?
Da geht das doch relativ einfach
  Mit Zitat antworten Zitat
jziersch

Registriert seit: 9. Okt 2003
Ort: München
251 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 12:06
Den Pfad zu Deinen Dateien könntest Du doch mit System.SysUtils.GetHomePath ermitteln.

Nachinstallieren von runtimes ist natürlich schwierig - ich würde ich einfach ein Innosetup script verwenden welches dann im selben Pfad Deine module schreibt. Es wird dies automatisch tun, wenn Du den selben "AppName" verwendest.

InnoSetup ist super. Ich verwende allerdings eine ältere Version da der Windows Defender bei der neuen gemotzt hat.
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#4

AW: ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 12:52
%APPDATA% ist das neue C:\. Viele Programme installieren sich heute in %APPDATA%. Chrome und Firefox (non-ESR), auch Entwickler-Sachen wie Sourcetree. Weder zur Installation noch Deinstallation braucht man Rechte. Dass das ganze Programm dann in einer Domäne bei jedem Login und Logout mit einem Server gesynct wird - drauf geschissen. Die haben wohl auch alle keinen Bock darauf, ihr Programm vernünftig zu schreiben und anzupassen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.444 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 13:49
Ach so ist das. Das habe ich sogar schon bei einem Microsoft-Tool so gesehen.

@jziersch: das Fass habe ich schon geleert

@MyRealName: InnoSetup u.a. taugen für mich nicht. Spätestens bei der Deinstallation ist das das Problem, dass die gar nicht wissen (können) welche Dateien alle weg müssen. Das hängt sehr von der Art der Instllation und weiss allein mein Code. Klar, auch mit den Tools kann man scripten, aber dann muss ich ja wieder das lernen. Zu Beginn hat ich auch ein Installationstool eingesetzt.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.604 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 13:55
Vielleicht einfach als "Portable App" bezeichnen (it's a feature, stupid!) und Installation nach Program Files nicht erlauben, da Windows dann motzt. Vorgabe sollte c:\PortableApps\DeinProgramm sein. Ansonsten braucht man dann nichts zu ändern und alle sind glücklich.

(OK, ist schon zu spät, ist mir auch gerade aufgefallen. Dann bleibt mir nur noch zu sagen: "Armer schwarzer Kater" )
Thomas Mueller
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#7

AW: ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 14:08
Nur mal so hingedaddelt:

Kann Dein Programm sich nicht selbst deinstallieren?

Eine Option dafür einbauen, die alles, was zur Laufzeit entfernt werden kann, entfernt.

Für die Sachen, die nicht entfernt werden können ein Script / Batch, ... schreiben und diese in der Registry unter
Code:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

oder

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
eintragen. (Run and RunOnce Registry Keys)

Was dort steht, wird einmalig beim nächsten Systemstart ausgeführt.

Wenn's z. B. 'ne Batch ist, kann die sich selbst zur Laufzeit löschen und damit wäre alles restlos weg.

Sie könnte auch ein von Dir erstelltes Deinstallationsprogramm starten, warten bis das fertig ist, es löschen und sich dann selbst löschen.

Wenn's sehr anwenderspezifisch ist, kann man auch ein Programm in den Autostartordner legen, beim nächsten Systemstart / Anmelden wird das dann ausgeführt. Es muss halt "nur" sichergestellt werden, dass sich das dann selbst aus dem Autostartordner löscht.

Achso: Das sind nur unausgereifte Ideen, die eventuell 'nen Ansatz liefern könnten (oder aber auch nicht )
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: ein Fass nach dem anderen geht auf

  Alt 14. Nov 2020, 15:30
Ich nutze die aktuelle InstallAware Developer und bin zufrieden damit.
Das Ding kann natürlich installieren, deinstallieren, signieren, automatisch (auch im Hintergrund) updaten.

Es gibt sicher andere gute...

(MSIX Packaging Tool ist je nach Umfang u.U. auch interessant. Das Tool kann auch ein bestehendes Setup in ein MSIX File wandeln.)
Michael Gasser
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#9

AW: ein Fass nach dem anderen geht auf

  Alt 15. Nov 2020, 21:06
Ach so ist das. Das habe ich sogar schon bei einem Microsoft-Tool so gesehen.

@jziersch: das Fass habe ich schon geleert

@MyRealName: InnoSetup u.a. taugen für mich nicht. Spätestens bei der Deinstallation ist das das Problem, dass die gar nicht wissen (können) welche Dateien alle weg müssen. Das hängt sehr von der Art der Instllation und weiss allein mein Code. Klar, auch mit den Tools kann man scripten, aber dann muss ich ja wieder das lernen. Zu Beginn hat ich auch ein Installationstool eingesetzt.
InnoSetup benutzt Pascal Skript und ein Ereignis zum Deinstallationszeitpunkt sollte einfach sein. Evtl. ein eigenes kleines Konsolenprogramm schreiben welches das Löschen dieser Zusatzmodule macht. Das dann in dem Event aufrufen. Sollte eine Skriptzeile sein.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#10

AW: ein Fass nach dem anderen geht auf

  Alt 17. Nov 2020, 18:03
Ich persönlich bin ein Fan vom Windows Installer und dem WIX-Toolset.

https://wixtoolset.org/

Tutorial:
https://www.youtube.com/watch?v=m3lDzMl3Hq0
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz