Eigenen Installer schreiben

Doomt

Mitglied
Hy,

Ich sehe immer wieder selbst geschriebene Installer bei z.B.
-) Spiele Collections (zB Alle Teile von Mass Effect in einer Iso, mit Crack und eigener installationsroutine)
"Wenn man das Spiel gekauft hat ist es nicht illegal"
-) mehrere Versionen eines Programms in einer Setup Datei
-) uvm.

Jetzt Frage ich mich folgendes:
* Wie fange ich so ein Projekt an? (Setup analysieren, wie was wo usw)
* Wie finde ich heraus ob eine unbeaufsichtigte Installation möglich ist? (angenehmere schneller Installation)
* Welche Sprache und welche Umgebung würdet ihr verwendet? (oder verwendet ihr)
* Empfehlungen? Anregungen? Ideen?

Ich will hier keine fertige Lösung erfragen.
Ich will eine Diskussion und Brain-storming starten.
Ich will beim Thema bleiben.

Ja ich weis, ich will viel, aber wer nicht weis was er will, geht ziellos durchs Leben ;)

Genauer meine ich damit, den Installer selber schreiben, so dass man den Installer der anderen Programme komplett ersetzt (je nach Programm wird es einfacher sein, dem bereits vorhanden Installer Parameter zu übergeben)

lg,
Doomt
 
[...]
-) Spiele Collections (zB Alle Teile von Mass Effect in einer Iso, mit Crack und eigener installationsroutine)
"Wenn man das Spiel gekauft hat ist es nicht illegal"
[...]

Falsch. Ein Crack ist die nicht erlaubte Modifizierung eines Programms, so dass dieses ohne gültige Lizenz verwendet werden kann. Das ist die Umgehung eines wirksamen Kopierschutzes und ist verboten.

Aber zurück zu deinem eigentlichen Thema ;)

* Wie fange ich so ein Projekt an? (Setup analysieren, wie was wo usw)
Kommt darauf an, was dein Programm alles auf dem Zielrechner braucht. Einfachere Programme müssen eigentlich nur auf dem Rechner in ein Verzeichnis entpackt / kopiert werden, Verknüpfung im Startmenü und Desktop anlegen und gut ist. Abschließend dann noch benötigte Laufzeitumgebungen (bei Spielen zum Beispiel den DirectX) drauf und gut ist.

* Wie finde ich heraus ob eine unbeaufsichtigte Installation möglich ist? (angenehmere schneller Installation)
Willst du so etwas selber schreiben, oder bei einem anderen Installer rausfinden? Für bestehende ist diese Seite nicht schlecht. Selber schreiben kannst du das natürlich auch, baue einen solchen Schalter ein den du beim Start abrufst. Falls er vorhanden ist, wird für alle möglichen Einstellungen der Standard angenommen.

* Welche Sprache und welche Umgebung würdet ihr verwendet? (oder verwendet ihr)
Gute Frage. Würde so etwas eher in C / C++ schreiben. Eigentlich bin ich ja eher der Java-Fanboy, aber hierfür muss ja erst mal ein JRE installiert sein.

* Empfehlungen? Anregungen? Ideen?
Warum selber schreiben? Gibt doch eh genug verschiedene Routinen und Packer (auch kostenlose) die gut funktionieren. Ausserdem musst du nicht nur den Installer, sondern auch den Uninstaller schreiben. Auch die richtigen Einträge in der Windows-Registry, dass das Programm in der Liste der installierten Programme zu finden ist, ist glaub ich nicht ganz ohne.

Grüße,
BK
 
Falsch. Ein Crack ist die nicht erlaubte Modifizierung eines Programms, so dass dieses ohne gültige Lizenz verwendet werden kann. Das ist die Umgehung eines wirksamen Kopierschutzes und ist verboten.

Hmm wird das mit dem Crack genauso gehandhabt wie mit den Privatkopien von gekauften Spielen und Programmen?
Ich darf von gekauften Material Privatkopien erstellen ^^

Kommt darauf an, was dein Programm alles auf dem Zielrechner braucht. Einfachere Programme müssen eigentlich nur auf dem Rechner in ein Verzeichnis entpackt / kopiert werden, Verknüpfung im Startmenü und Desktop anlegen und gut ist. Abschließend dann noch benötigte Laufzeitumgebungen (bei Spielen zum Beispiel den DirectX) drauf und gut ist.
Also jedes Programm analysieren und im Internet suchen ob es bereits möglich ist unbeaufsichtigt zu installieren oder selber schreiben. (Registry Einträge nicht vergessen ;) Das wichtigste in Windows ^^ ) Alle Vorraussetzungen wie DirectX .Net Framework usw natürlich installieren, bzw mitliefern.

Willst du so etwas selber schreiben, oder bei einem anderen Installer rausfinden? Für bestehende ist diese Seite nicht schlecht. Selber schreiben kannst du das natürlich auch, baue einen solchen Schalter ein den du beim Start abrufst. Falls er vorhanden ist, wird für alle möglichen Einstellungen der Standard angenommen.
Am angenehmsten ist es wenn der bereits vorhandene Installer diese unbeaufsichtigte installation schafft, aber falls nötig möchte ich in der Lage sein so etwas selber auszuprogrammieren. hmm anfangs wären standard Einstellungen mal nicht schlecht, allerdings bin ich jemand der beim Installieren immer auf benutzerdefiniert drückt, sei es auch nur um zu sehen was ich einstellen kann, ich vertrau den Programmen generell mal nicht und will wissen was mitinstalliert wird ( hier auch die Gefahr bei eigenem Installer dass man ein Programm unabsichtlich mit installiert, zB bei Daemon Tools lite ist Tune-up testversion standard mäßig angehackelt)

Gute Frage. Würde so etwas eher in C / C++ schreiben. Eigentlich bin ich ja eher der Java-Fanboy, aber hierfür muss ja erst mal ein JRE installiert sein.
Hab mir selber schon gedacht dass es in C / C++ am besten wäre, gegebenenfalls wäre C# mit .net version 2.0 eine möglichkeit weil diese Version beim Betriebssystem standardmäßig dabei sein sollte ( HAbe bis jz keinen Rechner gesehen wo man die 2.0er Version nicht hat)
Kompatibilität und funktionsumfang ist bei C / C++ allerdings größer.

Warum selber schreiben? Gibt doch eh genug verschiedene Routinen und Packer (auch kostenlose) die gut funktionieren. Ausserdem musst du nicht nur den Installer, sondern auch den Uninstaller schreiben. Auch die richtigen Einträge in der Windows-Registry, dass das Programm in der Liste der installierten Programme zu finden ist, ist glaub ich nicht ganz ohne.
Uninstaller kann von mir aus derzeit noch der Programm-eigene bleiben, das wäre ein Punkt für die Zukunft.
Windows Registry eintrag um zu finden was installiert ist, ist nicht allzu schwer zu finden, den zu generieren ist sicher auch nicht allzu schwer, gibt es sicher Varianten.
Alle installierten Programme auslesen sollte mit dem Key funktionieren:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products

darunter gibt es dann weitere Key's wie zB
B381812D8AD5A4C46AABC3CC77A286A3\InstallProperties

und aus den InstallProperties kann man wichtige Informationen auslesen, wie zB Name des Programmes und ort des Uninstaller


lg,
Doomt
 
Hmm wird das mit dem Crack genauso gehandhabt wie mit den Privatkopien von gekauften Spielen und Programmen?
Ich darf von gekauften Material Privatkopien erstellen ^^
Zitat §95a, UrhG:
(1) Wirksame technische Maßnahmen zum Schutz eines nach diesem Gesetz geschützten Werkes oder eines anderen nach diesem Gesetz geschützten Schutzgegenstandes dürfen ohne Zustimmung des Rechtsinhabers nicht umgangen werden, soweit dem Handelnden bekannt ist oder den Umständen nach bekannt sein muss, dass die Umgehung erfolgt, um den Zugang zu einem solchen Werk oder Schutzgegenstand oder deren Nutzung zu ermöglichen.
Privatkopien sind nur erlaubt, wenn es keinen Kopierschutz gibt. Zu den Cracks kann ich leider nur Wikipedia auf die schnelle zitieren:
Die meisten kommerziellen Applikationen untersagen in ihren Lizenzbedingungen jegliche Modifikationen der Software oder sogar schon den Vorgang des Disassemblierens.[...]Ein Patch darf dabei nur in Form eines Programms verbreitet werden, das die Originaldatei nach Vorgaben verändert, jedoch nicht in Form einer modifizierten Kopie der Originaldatei.

Also jedes Programm analysieren und im Internet suchen ob es bereits möglich ist unbeaufsichtigt zu installieren oder selber schreiben. (Registry Einträge nicht vergessen ;) Das wichtigste in Windows ^^ ) Alle Vorraussetzungen wie DirectX .Net Framework usw natürlich installieren, bzw mitliefern.
Genau.

Am angenehmsten ist es wenn der bereits vorhandene Installer diese unbeaufsichtigte installation schafft, aber falls nötig möchte ich in der Lage sein so etwas selber auszuprogrammieren. hmm anfangs wären standard Einstellungen mal nicht schlecht, allerdings bin ich jemand der beim Installieren immer auf benutzerdefiniert drückt, sei es auch nur um zu sehen was ich einstellen kann, ich vertrau den Programmen generell mal nicht und will wissen was mitinstalliert wird ( hier auch die Gefahr bei eigenem Installer dass man ein Programm unabsichtlich mit installiert, zB bei Daemon Tools lite ist Tune-up testversion standard mäßig angehackelt)
Jep, die Toolbars sind schon schlimm, auch beim Java-Installer die Ask-Toolbar...

Hab mir selber schon gedacht dass es in C / C++ am besten wäre, gegebenenfalls wäre C# mit .net version 2.0 eine möglichkeit weil diese Version beim Betriebssystem standardmäßig dabei sein sollte ( HAbe bis jz keinen Rechner gesehen wo man die 2.0er Version nicht hat)
Kompatibilität und funktionsumfang ist bei C / C++ allerdings größer.
Kommt halt auch auf die Windows Version an. Ich glaub bei XP ist .Net nicht Standard.

Uninstaller kann von mir aus derzeit noch der Programm-eigene bleiben, das wäre ein Punkt für die Zukunft.
Windows Registry eintrag um zu finden was installiert ist, ist nicht allzu schwer zu finden, den zu generieren ist sicher auch nicht allzu schwer, gibt es sicher Varianten.
Alle installierten Programme auslesen sollte mit dem Key funktionieren:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products

darunter gibt es dann weitere Key's wie zB
B381812D8AD5A4C46AABC3CC77A286A3\InstallProperties

und aus den InstallProperties kann man wichtige Informationen auslesen, wie zB Name des Programmes und ort des Uninstaller
Hier zu beachten ist aber folgendes:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products: Das unterstrichene ist variabel, kommt auf den Benutzer an der es installiert hat. (bin mir da nicht ganz sicher)
- B381812D8AD5A4C46AABC3CC77A286A3\InstallProperties: Das unterstrichene ist einmalig, muss für jedes Programm anders sein.

Aber grundsätzlich hast du Recht, es sollte nicht allzu schwer sein die paar Einträge in die Registry zu schreiben.

Hier mal der Source des SumatraPDF Installers: http://code.google.com/p/sumatrapdf/source/browse/#svn/trunk/src/installer
Kannst als Beispiel nehmen, wie so etwas gemacht werden kann.

Grüße,
BK
 
hmm nebenbei noch etwas dazugelernt ;)
Das mit dem Kopierschutz kenn ich gar nicht mehr, früher konntest nicht mal eine CD kopieren ohne Programm was den Kopierschutz bricht.

Jep, die Toolbars sind schon schlimm, auch beim Java-Installer die Ask-Toolbar...
Die Toolbars sind oft auch Malware oder Spyware und installieren sich mit ohne es zu merken..
Ein weiterer Grund warum ich einen eigenen installer schreiben will, so kann ich freunden ein Programm geben ohne zu befürchten dass die sich damit einen Virus oder schädliche Software zulegen, welche ich dann versuchen darf zu entfernen :/

Kommt halt auch auf die Windows Version an. Ich glaub bei XP ist .Net nicht Standard.
Müsste man recherchieren, denn für mich ist Windows XP noch nicht tot und der installer sollte dort auch laufen.
Vielleicht kam es mit einem Servicepack hinzu.

Das unterstrichene ist variabel, kommt auf den Benutzer an der es installiert hat. (bin mir da nicht ganz sicher)
Das wäre ein geringes Problem, denn wenn man schon in der Registry sich austobt, kann man sich auch die Zeit nehmen dort den richtigen Benutzer-code zu suchen.

B381812D8AD5A4C46AABC3CC77A286A3\InstallProperties: Das unterstrichene ist einmalig, muss für jedes Programm anders sein.
Bin mir hierbei noch nicht sicher ob Windows das selbst generieren kann oder woher diese Zeichenfolge kommt, einzigartig pro programm kann es nicht sein. (bezweifle dass bei anderen dieser Code für das gleiche Programm steht)

Hier mal der Source des SumatraPDF Installers: http://code.google.com/p/sumatrapdf/.../src/installer
Kannst als Beispiel nehmen, wie so etwas gemacht werden kann.
hmm Danke. Werd ich mir am sobald ich Zeit und nerven habe den Source Code von anderen zu lesen durchschauen und studieren.

Das Setup der jeweiligen zu installierenden Programmen zu analysieren wird lustig werden und am meisten Zeit in Anspruch nehmen. Bin nebenbei im Gedanken auch ein wenig bei einem Uninstaller in C# daher kenn ich diesen Registry Key. Computer säubern und unnötige Programme wegschmeissen.. unbeaufsichtigt (indem man zuvor alle Programme anhackelt welche deinstalliert werden sollen)... braucht man nicht oft aber WENN dann ist es nützlich und spart Zeit.

lg,
Doomt
 
Die Toolbars sind oft auch Malware oder Spyware und installieren sich mit ohne es zu merken..
Ein weiterer Grund warum ich einen eigenen installer schreiben will, so kann ich freunden ein Programm geben ohne zu befürchten dass die sich damit einen Virus oder schädliche Software zulegen, welche ich dann versuchen darf zu entfernen :/
Kommt immer auf den Vertreiber an.
Die Ask Toolbar bei der Java-Installation ist sicherlich keine Malware oder ein Virus!
Außerdem immer nur die Installer von offiziellen Seiten beziehen!

Eigentlich ist es ganz einfach: immer auf benutzerdefiniert klicken und alle mögliche Werbemaßnahmen ablehnen/deaktivieren.
Das könntest du deinen Freunden sagen.

Müsste man recherchieren, denn für mich ist Windows XP noch nicht tot und der installer sollte dort auch laufen.
Vielleicht kam es mit einem Servicepack hinzu.
Oh nein, wann werden es die Leute endlich einsehen, dass das OS 12 Jahre alt ist. Mehr als ein Jahrzent!

Zum SP: Ja, ich glaube, dass die mit einem SP hinzukan. Ich weiß jetzt nicht genau welches.

.NET 4.0 sollte auf XP SP 3 unterstützt werden! Hierbei muss .NET 4.0 aber separat installiert werden, wohlgemerkt.

@Bratkartoffel:

Ich dachte, Modifizierungen (auf der eigenen Festplatte) sind völlig legal. Ich meine, ein Rechtsurteil gelesen zu haben, welches sagt, dass auch wenn die EULAs der Programme dies untersagt, solche Modifikationen im legalen Rahmen sind. Aber ich kann mich auch völlig irren...
 
@Bratkartoffel:

Ich dachte, Modifizierungen (auf der eigenen Festplatte) sind völlig legal. Ich meine, ein Rechtsurteil gelesen zu haben, welches sagt, dass auch wenn die EULAs der Programme dies untersagt, solche Modifikationen im legalen Rahmen sind. Aber ich kann mich auch völlig irren...

Hi,

kann auch sein, bin da rechtlich nicht auf den aktuellsten Stand. Aber soweit ich weiß ist das nur erlaubt, wenn man damit nicht wieder einen Kopierschutz umgeht, worauf ja die Verwendung von Cracks abzielt.

Grüße,
BK
 
Ich war damals ziemlich von Inno Setup beeindruckt, war kostenlos und bot eine Script Sprache für zusätzliche Sachen an.
Also eigentlich schon ziemlich mächtig gewesen. Und war kostenlos.
Ist allerdings auch schon bestimmt 3 Jahre her, jedenfalls wäre das erstmal wieder meine erste Wahl wenn ich ein Installer bräuchte.
 
Kommt immer auf den Vertreiber an.
Die Ask Toolbar bei der Java-Installation ist sicherlich keine Malware oder ein Virus!
Außerdem immer nur die Installer von offiziellen Seiten beziehen!

Danke ;) Ich weis...
Ich hatte mein Leben lang noch nie einen Virus oder ähnliches ;)
Java würde ich sogar soweit vertrauen, aber Toolbars mag ich trotzdem nicht.

Eigentlich ist es ganz einfach: immer auf benutzerdefiniert klicken und alle mögliche Werbemaßnahmen ablehnen/deaktivieren.
Das könntest du deinen Freunden sagen.

Es war zwar nicht die Frage...
Vielleicht kennst du ja auch so Leute die mit dem Computer arbeiten und grad mal auskennen?
Ich hab Freunde, welche sich nicht wie ich auskennen und wissen, was Programme benötigen und was nicht notwendig ist.
Diese Freunde interessieren sich auch nicht so dafür ;)

Aber wie gesagt das WAR nicht das Thema ^^

Oh nein, wann werden es die Leute endlich einsehen, dass das OS 12 Jahre alt ist. Mehr als ein Jahrzent!

Hmm.. dir gefällt dann wohl das neue Windows 8? (Ich persönlich finde dass es auf einen Rechner der keinen Touchscreen hat, nichts zu suchen hat)
Aja und vergessen wir nicht, dass die Programme jetzt alle Apps sind, Das Betriebssystem nicht zu 100% abwärtskompatibel ist, somit viele Programme nicht mehr so funktionieren wie sie sollten. Kennst du die Server Architekturen der Banken? (ein Tipp: noch älter als Win XP)

Windows XP ist eines der stabilsten gewesen und es gibt genug Firmen, welche nicht umsteigen, weil es ein Haufen Geld kostet und Sie es nicht brauchen, bzw weis niemand ob alle Programm von denen dann noch funktionieren, oder es muss ne neue Lizenz gekauft werden..

Weist du eigentlich wie alt der Computer ist? ein Jahrzehnt ist da nicht gerade alt im vergleich dazu ;)
(Mein Vater hat noch mit Lochkarten programmieren gelernt. )

Zum SP: Ja, ich glaube, dass die mit einem SP hinzukan. Ich weiß jetzt nicht genau welches.

.NET 4.0 sollte auf XP SP 3 unterstützt werden! Hierbei muss .NET 4.0 aber separat installiert werden, wohlgemerkt.
hmm danke. Man müsste sich noch erkundigen ob .Net 2.0 unterstützt wird.. Aber ich glaube das spar ich mir. C / C++ ist eindeutig die bessere Variante.


Das man keinen Universal-Installer schreiben kann war mir klar.
Da wird ein Uninstaller vielleicht ein wenig einfacher und ich probier den zuerst, hier vertrauen doch relativ viele Programme auf den Windows uninstaller (welcher still gestartet werden kann).

mfg,
Doomt
 
Hmm.. dir gefällt dann wohl das neue Windows 8? (Ich persönlich finde dass es auf einen Rechner der keinen Touchscreen hat, nichts zu suchen hat)
Ja, das ist aber nur meine persönliche Meinung. Wenn man unbedingt (!) will kann man auch noch Win7 benutzen, aber bitte nicht XP - das ist zu alt!

Aja und vergessen wir nicht, dass die Programme jetzt alle Apps sind
Wer hat denn das gesagt ? Meine Güte, natürlich gibt es einen Desktop und alles andere!!

Das Betriebssystem nicht zu 100% abwärtskompatibel ist, somit viele Programme nicht mehr so funktionieren wie sie sollten
Welches ist das schon? Gar keins, weder Windows, Linux, noch sonst irgendwas!
Fast alle Programme, die auf Win7 liefen, laufen auch auf Win8.
(Ausgenommen sind natürlich hardwarenahe Programme oder Treiber.)

Hast du denn als Privatanwender ein Programm, welches nicht mehr funktioniert?

Kennst du die Server Architekturen der Banken? (ein Tipp: noch älter als Win XP)
Kenne ich persönlich nicht. Aber vor - ich glaube - mehr als einem 3/4 Jahr war in den Nachrichten die Rede von Sicherheitslöchern in Kassenterminals oder deren Abwicklungssystem, weil die noch XP nutzen.

Windows XP ist eines der stabilsten gewesen
Stabil in Bezug auf was?

[...] Sie es nicht brauchen
Es geht nicht ums Brauchen.
Windows 8 ist kein Spielzeug, mit dem du nur mehr Spaß haben kannst.
Es geht darum, eine *aktuelle* und *moderne* Software zu besitzen. Achja, hast du vergessen, dass es zwischen Win 8 und XP noch Vista und 7 gab?

Weist du eigentlich wie alt der Computer ist? ein Jahrzehnt ist da nicht gerade alt im vergleich dazu
Meines Erachtens: doch, sehr sogar!
Allein die Hardware hat sich ungemein verändert, die Software noch dazu!

PS: Sorry für den Zitatendschungel, aber es ging nicht anders :D

PSS:
Vielleicht kennst du ja auch so Leute die mit dem Computer arbeiten und grad mal auskennen?
Ja, ich denke mal jeder kennst solche Leute. Soweit es sich im Rahmen hält, kann man denen sowas beibringen.

Übrigens, ich weiß nicht, um welche Software es bei dir geht, aber bei einigen (v.a. bei Opensource) gibt es Portable-Versionen. Das sind meist einfache ZIPs/7z-Archive oder Installer (bei denen ich noch nie Toolbars gesehen habe).
 
Zurück