Installer für Bildschirmschoner

Für allgemeine Fragen zur Programmierung mit PureBasic.
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

Poser hat geschrieben:Yep, thanks! Also dann is ja soweit alles klar...
Hast Du auch verstanden, woran es lag? ;)
Und den includeten Schoner tu ich ganz normal auslesen und als Datei in das Dir schreiben gell?
Watt? :D
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

"Hast Du auch verstanden, woran es lag?"

---> Nicht wirklich. Aber der "alte" Code war wohl zu sehr auf ein System beschränkt, die Variante von Dir "offener".

"Watt?"

---> Ausgangsposting! Will ja einen Installer machen wo die .exe des Schoner schon mit drin ist. Alternativ wäre vielleicht anhängen. Aber das gibt sicher wieder Probleme wenn man dann alles packt...
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

Poser hat geschrieben:Nicht wirklich. Aber der "alte" Code war wohl zu sehr auf ein System beschränkt, die Variante von Dir "offener".
Nein.

Das Problem war, dass Du in einen nicht vorher alloziierten Speicherbereich schreiben
wolltest (also ich nehme an, das fehlende $ war ein Schreibfehler).
Das es nun funktioniert, liegt ausschließlich an Space().

Die 1024 habe ich nur aus Schönheitsgründen durch #MAX_PATH ersetzt.
(#MAX_PATH = maximale Pfadlänge = 260)
Ausgangsposting! Will ja einen Installer machen wo die .exe des Schoner schon mit drin ist. Alternativ wäre vielleicht anhängen. Aber das gibt sicher wieder Probleme wenn man dann alles packt...
IncludeBinary

Dann einfach den Screensaver unter dem selben Namen ins System-Verzeichnis,
den Du später auch an Install übergibst. Dann löpt et :)

Also beispielsweise

Code: Alles auswählen

.
.
.

OpenFile(0, sysDir$+"\DeinName.scr")
WriteData(?saverStart, ?saverEnd-?saverStart)
CloseFile(0)

.
.
.

DataSection
  saverStart:
    IncludeBinary "DeinName.scr"
  saverEnd:
EndDataSection
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

Thanks! Gibt es eigentlich ein richtiges PB-Tutorial was solche Feinheiten berücksichtigt? Komme aus der Blitzbasic-Ecke und bin solche Details nicht gewohnt ;)

Und wegen dem Include: Angenommen der Installer soll universell sein, also jeder soll selber die Daten includen können - werden die dann einfach nur an die Installer-exe angehängt und später wieder ausgelesen?

Wenn man den Installer incl. Anhänge aber packt, kann man die Daten nicht mehr korrekt ansprechen oder? Also erst vorher Anhänge packen und dann anhängen oder?
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

Poser hat geschrieben:Und wegen dem Include: Angenommen der Installer soll universell sein, also jeder soll selber die Daten includen können - werden die dann einfach nur an die Installer-exe angehängt und später wieder ausgelesen?
Vom Prinzip her ja. Viele wege führen nach Rom.

Schau Dir mal folgenden Thread an:
http://forums.purebasic.com/english/vie ... hp?t=12878
Da sollte schon direkt die passende Idee (+Umsetzung) dabei sein.
Wenn man den Installer incl. Anhänge aber packt, kann man die Daten nicht mehr korrekt ansprechen oder? Also erst vorher Anhänge packen und dann anhängen oder?
Meinst Du per Executable-Packer á la UPX ?
Kannst ruhig beide packen (also den Screensaver einzeln und dann
sozusagen den Installer inkl. Screensaver)
Dein Installer wird ja _vor_ der eigentlichen Ausführung entpackt, da
'verschiebt' sich also nichts.
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

Ja aber Du lädst doch dann die .exe ein und suchst nach dem String mit den Daten ab wo Du einladen willst. Bei einer gepackten .exe ist ja dann keine Sprungmarke mehr da oder?
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

Verstehe ich nicht.

An welcher Addresse Deine eingebundene .exe liegt, ändert sich doch durch's
Packen nicht!? Vielleicht verstehe ich einfach nicht, woraus Du hinauswillst ;)
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

Also du hast eine .exe die 100 KB groß ist, danach kommen 50 KB Daten (angehängt). Die Daten kannst Du einfach ansprechen, weil Du weißt wo sie sich genau befinden.

Wenn jetzt diese .exe gepackt wird, stimmt ja diese Sprungmarke nicht mehr, da landet man ja irgendwo in der .exe und nicht beim Datenblock.
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

Probier's doch einfach mal aus 8)

Nimm Dir mal den Code von griz zur Brust und fummel ein bisschen damit
rum. Ich garantiere Dir, das funktioniert auch noch wenn die exe (von griz
decoder genannt) gepackt ist.

In griz' Code wird ja einfach ans Ende der exe geschrieben und die Dateigröße
im Code ermittelt. Somit ist es völlig wurst, ob gepackt oder nicht.

Alles wird gut! [TM] :allright:
Antworten