Seite 3 von 4

Verfasst: 16.03.2008 16:26
von TomTom
hi

und wie kann ich jetzt machen, das in der DataSection der IncludeBinary eine Variable nimmt?


thx @ all! ^^

Verfasst: 16.03.2008 17:32
von Kiffi
TomTom hat geschrieben:und wie kann ich jetzt machen, das in der DataSection der IncludeBinary eine Variable nimmt?
gar nicht. :-)

Grüße

Verfasst: 16.03.2008 18:25
von TomTom
wie gar nicht? geht das echt nicht?

ich meine nur, die sprache PB ist so hammer, da muss man doch sowas auch einbauen können...

achja wenn ich die exe mit IncludeBinary "c:\testdatei.exe" eingelesen habe, wie kann ich die wieder rausgeben? geht das?

mfg tomtom

Verfasst: 16.03.2008 19:51
von Kiffi
TomTom hat geschrieben:wie gar nicht? geht das echt nicht?
geht echt nicht.
IncludeBinary wird vor dem Compilieren ausgeführt. Das gibt's noch keine
Variablen, die man auswerten könnte.
TomTom hat geschrieben:achja wenn ich die exe mit IncludeBinary "c:\testdatei.exe" eingelesen habe, wie kann ich die wieder rausgeben? geht das?
was heißt in diesem Zusammenhang 'rausgeben'? Hast Du Dir den
Beispielcode von BI2 überhaupt schon mal angeschaut?

Grüße ... Kiffi

//Edit: Typo gefixt

Verfasst: 16.03.2008 21:09
von TomTom
also wenn ich eine exe mit reinnehme, dann kann ich doch sicher auch wieder rausgeben


grüße tomtom

Verfasst: 16.03.2008 21:41
von Kiffi
TomTom hat geschrieben:also wenn ich eine exe mit reinnehme, dann kann ich doch sicher auch wieder rausgeben
Kiffi hat geschrieben:was heißt in diesem Zusammenhang 'rausgeben'?

Verfasst: 17.03.2008 00:48
von hardfalcon
TomTom: Bedeutet "rausgeben" in ne (temporäre) Datei schreiben, direkt aus dem Speicher ausführen, oder ein Bier übern Tresen schieben?

Was das Thema "Variable in der DataSection" angeht: Auch PB kocht nur mit Wasser, oder besser gesagt, mit dem PE-Format ("Portable Executable", unter Windows das Standardformat für ausführbare Dateien (vulgo "Programme")), und mit dem PE-Format geht sowas nicht, genausowenig wie mit jedem anderen Format für Executables, das mir bekannt ist.

Verfasst: 17.03.2008 13:14
von TomTom
was ich mit rausnehmen meine ist: im moment hat der die 2te exeDatei ja eingelesen (also habe ich 2 exedateien in einer) gibt es jetzt einen befehl um die mit IncludeBinary exeDatei wieder auszuspucken (die wieder rausnehmen) sodass die exe Frei ist...

ich hoffe das kann man verstehen :mrgreen:


mfg tomtom

Verfasst: 17.03.2008 13:26
von Fluid Byte
Ja, du kannst die Daten wieder zurückschreiben in eine ausführbare .EXE. Siehe in der Hilfe unter "File".

Verfasst: 17.03.2008 13:29
von BI2
@TomTom

Warum willst Du die exe wieder ausspucken. Die eingepackte exe wird doch bei richtiger Kennworteingabe direkt im Speicher ausgeführt.

Die Möglichkeit mit ausspucken wäre eine temporäre Datei anzulegen - das ginge so:

Code: Alles auswählen

Programm$ = GetPathPart(ProgramFilename()) + "Name_für_temporäre.exe"

If InputRequester("Abfrage", "Bitte Kennwort eingeben", "") = "Kennwort"
  If CreateFile(1, Programm$)
    WriteData(1, ?DateiStart, ?DateiEnde - ?DateiStart)
    CloseFile(1)
    If RunProgram(Programm$, "", GetPathPart(Programm$), #PB_Program_Wait) : EndIf
    If DeleteFile(Programm$) : EndIf
  EndIf
EndIf

End

DataSection
  DateiStart:
  IncludeBinary "Zu_schützende.exe"
  DateiEnde:
EndDataSection
nach beenden des Spiels würde die temporäre exe wieder gelöscht werden.

Gruß, BI2