Ich hab mal schnell ein Beispiel für dich gemacht, wie ich es machen
würde:
Zuerst der Source für die inkludierte EXE. Einfach zu "Programm.exe"
kompilieren.
Code: Alles auswählen
Procedure.s GetText()
Protected FileID.l, Size.l, length.l, Text.s
FileID = ReadFile(#PB_Any, ProgramFilename())
If FileID
Size = Lof(FileID) - 4
FileSeek(FileID, Size)
length = ReadLong(FileID)
FileSeek(FileID, Size - length - 1)
Text = ReadString(FileID, #PB_Ascii)
CloseFile(FileID)
EndIf
ProcedureReturn Text
EndProcedure
Define Text.s
Text = GetText()
If OpenWindow(0, 0, 0, 400, 300, Text, #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
CloseWindow(0)
EndIf
Und jetzt der Source zum Hauptprogramm, das die "Programm.exe"
inkludiert. Wenn die "Programm.exe" existiert, einfach mal ausführen.
Code: Alles auswählen
Define Text.s, a.l, Path.s
Text = InputRequester("Titel", "Was soll in der Titelzeile stehen?", "Irgendwas")
If Text = "" : End : EndIf
Path = GetPathPart(ProgramFilename())
a = 1
While FileSize(Path + "Programm_" + Str(a) + ".exe") >= 0
a + 1
Wend
Path + "Programm_" + Str(a) + ".exe"
If CreateFile(0, Path)
WriteData(0, ?Program_Start, ?Program_End - ?Program_Start) ;EXE schreiben
WriteString(0, Text, #PB_Ascii) ;Text schreiben
WriteByte(0, 0)
WriteLong(0, Len(Text)) ;Textlänge schreiben
CloseFile(0)
EndIf
RunProgram(Path)
DataSection
Program_Start:
IncludeBinary "Programm.exe"
Program_End:
EndDataSection
Ich habe jetzt nichts kommentiert. Aber da der Source so kurz ist, sollte es
leicht verständlich sein.