![]() |
Eigenes Install-Prog
hi leutz!
hoffe, kommt hier rein... iss zwr erst mein erster post, bin abba trotzdme kein delphi/foren-n00b ;) naja, zum problem: ich möchte mir gerne ein eigenes installprog zusammenbasteln, ABER: wie mache ich das, dass ich dann alle möglichen dateien in eine "zusammenschmelze", und diese dann wieder trennen kann? das installprog sollte natürlich wieder verwendbar sein ;) dann noch, dass ich das prog selber neu ertsllen kann, sprich, ich suche mir einen ordner aus und der erstellt eben dann den in das prog rein... ich wüsste halt nicht, wie ich am besten anfange... :( könnt ihr mir da helfen? |
Re: Eigenes Install-Prog
Zitat:
Dust Signs |
Re: Eigenes Install-Prog
Häng einfach ne zip Datei an die Exe an
|
Re: Eigenes Install-Prog
Also ein selbstentpackedes Archiv zu erstellen ist kein Problem. Siehe dazu meine SFXTools auf meiner Delphi Seite. Dazu hängt man im Prinzip die Dateien nur an eine Exe drann, die die dann wieder auf die Festplatte schreibt. Etwas schwerer wird es schon, wenn das ganze auch noch kompimiert werden soll. Aber ein Installationsprogramm muss, meiner Meinung nach, mehr können: Registryeinträge machen, einen Uninstaller mitliefern usw. Inno-Setup ist wohl OpenSource. Werf dort mal einen Blick in die Sourcen und du wirst sehen, dass es ein ziemlicher aufwand ist.
|
Re: Eigenes Install-Prog
Luckie nimmt mir die Worte aus dem Mund. Es reciht halt nicht aus einem Archiv ne Datei in ei Verzeichnis zu extrahieren... Das kannst du auch mit einem ZIP File. Dazu gehören Registryeinträge, INI Files, Uninstall... Vor allem muss darauf geachtet werden daß nicht versehentlich ne Datei überschrieben wird...
Innosetup oder NSIS, beide sind Open Source. Für InnoSetup gibts auch ne GUI. Ich selber nutze ![]() Aber ohne sich auf diese 3 Programme festzulegen, gibts noch viele mehr... Installshield, Installshield Express (ist bei der Prof. Version von Delphi mit dabei), Wise... Also ich würd mich nicht dranmachen, selbst so einen Installer zu schreiben. |
Re: Eigenes Install-Prog
Abend!
Ich habe mir mal so nen eigenen Installer programmiert - allerdings war er halt sehr auf meine eine Anwendung fixiert. Also gar nicht variabel! Es geht schon so etwas zu machen aber es ist halt auch einiges an Arbeit, die dahinter steckt! Nimm echt lieber so einen vorgefertigten! Dann funzt das ganze auch fast zu 100% (wenn halt Windows mitspielt :-D ) Also bis denn... mfg shark |
Re: Eigenes Install-Prog
Lass ihn doch ein installer proggen, wenn er will. Er will es doch schließlich nicht verkaufen, oder? Wenn ich ehlich bin, hasse ich installer grundsätzlich. Installer sind meistens ein zeichen dass das programm registry-einträge erstellt und registryeinträge sprechen eindeutig gegen meien Philosophie des programmierens. Alle bessren programme kommen ohne Installer aus (bsp. Mozilla, miranda,...)
OK, ich sehe ein, das Installer ganz praktisch sein können und ich verwende sie auch, aber wer den Installer geschrieben hat, ist mir dann wirklich egal! Aber das hier ist schließlich keine Diskusssion über den Sinn und Unsinn von Installern, sondern, wie man sowas schreibt./OT Am betsen installierst du dir erstmal ZipMaster (bzw. DelZip), das gibt es ![]() Damit kannst du Zipdateien packen udn endpacken, sit ganz einfach. Dann würde ich in das Ziparchiv eine Datei script.txt oder sowas schreiben. Wenn der installer in aktion tritt, extrahiert er erst temporär diese Datei und wertet die aus. Am besten ist diese Datei der einfachheit halber entweder ein FileStream, eine ini-datei oder am einfachsten eine csv-Datei. das könnte so aussehen: anweisung;parameter1;..;parametern also umgestez mal als beispiel ext;file1.dat;%distdir% das heißt als erstes merkt das programm ext, also muss es eien datei extrahieren. Dann kommt es zu file1.dat und es weiß, es handelt sich um die datei file1.dat. %distdir% müsstest du dann mit stringreplace einfach durch den Pfad erstezen, der der User angegeben hat, wo das Programm hin installiert werden soll. Dann hast du alles was du baruchst, um diese Datei zu extrahieren. weitergehend sollte das prog wildcards (also * und ?) unterstützen (also zum Beispiel um alle .dat Dateien zu extrahieren). Dann kannst du dir noch ein paar schöne Funktionen ausdeneken. Zum Beispiel was um registryeinträge zu generieren und ini-Files zu generieren. |
Re: Eigenes Install-Prog
Ich hab in letzter Zeit auch einmal einen Installer programmiert und irgendwie finde ich des alle hier etwas vom Thema abgekommen sind denn ihr schreibt des es sich nichts bringt doch er wollte doch nur wissen wie man Dateien mitanander verschmelzt :warn: .
Also werd ich da jetzt ein bischen Code rüberschieben: (Quelle: Easy Helper //recht praktisch) Ich hab nur noch ein paar komentare hinzugefügt!
Code:
Ich hoff des konnte dir helfen :mrgreen:
procedure Join(Main_FileName, Hidden_Filename : string);
var MainFile : TFileStream; HiddenFile : TFileStream; SizeOfFile : Cardinal; // Größe der Hauptdatei SearchWord : string[10]; //Für die Speicherung der Orginalgröße begin MainFile := TFileStream.Create(Main_FileName, fmOpenReadWrite or fmShareDenyWrite); try SizeOfFile := MainFile.Size; // Größe der Hauptdatei speichern HiddenFile := TFileStream.Create(Hidden_Filename, fmOpenRead or fmShareDenyNone); try MainFile.Seek(0, soFromEnd); //Ich muss gestehen das hab ich auch noch nicht //richtig verstanden. :oops: MainFile.CopyFrom(HiddenFile, 0); //Zweitei datei zur ersten hinzufügen MainFile.Seek(0, soFromEnd); //Immer noch nicht verstanden finally HiddenFile.Free; end; SearchWord := IntToStr(SizeOfFile) + #0; //Die größe der Hauptfile auswerten MainFile.Seek(0, soFromEnd); MainFile.WriteBuffer(SearchWord, SizeOf(SearchWord)); //abspeichern finally MainFile.Free; end; end; procedure Split(Main_FileName, NewFromMain_Filename : string); var MainFile : TFileStream; SplitFile : TFileStream; HelpStr : string[10]; //wieder größe der Hauptdatei GetSize : integer; begin MainFile := TFileStream.create(Main_FileName, fmOpenReadWrite or fmShareDenyWrite); try SplitFile := TFileStream.Create(NewFromMain_Filename, fmCreate or fmShareDenyNone); try MainFile.Position := MainFile.Size - 11; //Zum auslesen Positon von Helpstr bestimmen MainFile.Read(HelpStr, 10); //auslesen GetSize := StrToInt(HelpStr); //abspeichern MainFile.Position := GetSize; //position der zweiten datei festlegen SplitFile.CopyFrom(MainFile, MainFile.Size-GetSize); //auslesen SplitFile.Size := SplitFile.Size - 11; //bei zweier datei hilfe text abschneiden MainFile.Size := GetSize; //Haupt datei auf Orginalgröße abschneiden kann auch wegelassen werden falls die Hauptfile die Datei behalten soll! finally SplitFile.Free; end; finally MainFile.Free; end; end; gsh |
Re: Eigenes Install-Prog
also, wenn es nur darum geht:
![]() |
Re: Eigenes Install-Prog
Eigener Installer? Das ist gar nicht sooo abwegig. ;)
Schaue dir mal das ![]() @yankee Wer auch immer etwas gegen Installer hat, hat sich noch nie genauer mit MSI befasst. :mrgreen: Du könntest eigentlich alles nötige per TypeLibrary aus dem MSI SDK importieren und darauf deine Anwendung aufbauen. MSI stellt momentan DIE Lösung für Windows SetUps dar. Schließlich kann man es so konfigurieren, dass Windows deine Anwendung autom. repariert und gelöschte Bibliotheken nachinstalliert. Eine Idee wäre ein AddIn für die Delphi IDE. Wenn Borland schon keine SetUp-Projects anbietet, dann hast du als Schüler sicher Zeit dafür. :P Das wäre übrigens eine ziemlich coole Idee ( :gruebel: ), wer die SetUp-Projects aus dem VS kennt weiß was ich meine. Die IDE weiß ja am besten, welche TypLibs, DLLs und Packages deine Anwendung benötigt, solch ein AddIn könnte einem die Arbeit ziemlich vereinfachen. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz