Seite 1 von 2

Installationsprogramm

Verfasst: 28.04.2006 14:38
von obbba
Ich hab ein Spiel geschrieben und will, dass es auch bei meinen Freunden läuft.
Nur muss ich ja, um eine Datei zu laden den Pfad angeben.

Also hab ich ein Installationsprogramm geschrieben, wo man einen Pfad angeben muss und dann werden von einer Diskette die Dateien in den jeweiligen Ordner reingeschrieben und es wird eine Datei auf der Diskette erstellt, mit einer Liste, was alles geladen werden soll.

Wenn das Spiel gestartet wird, läd es also zuerst die Liste und dann das, was in der Liste drinnen steht.

Nur brauch ich halt dazu immer die Diskette. Geht das auch einfacher?
Kann das Programm zum Beispiel erkennen, wo es gespeichert ist?

Verfasst: 28.04.2006 14:45
von ts-soft
Das könntest Du folgendermassen lösen:

Code: Alles auswählen

Procedure.s ExePath()
  Prg.s = Space(#MAX_PATH)
  GetModuleFileName_(GetModuleHandle_(0), @Prg, #MAX_PATH)
  Prg = GetPathPart(Prg)
  If (FindString(Prg,"\PureBasic\Compilers\", 1))
    Prg.s = Space(#MAX_PATH)
    GetCurrentDirectory_(#MAX_PATH,@Prg)
  EndIf
  If Right(Prg, 1) <> "\" : Prg + "\" : EndIf
  ProcedureReturn Prg
EndProcedure

Bild1.s = ExePath() + "Bild1.bmp"

Installationssysteme

Verfasst: 28.04.2006 14:55
von Vermilion
Also ich kenne da eine Alternative, NSIS (Nullsoft Scripting Installation System)(http://nsis.sourceforge.net/Main_Page).

Da kann man seine Sachen in solche Installer reinpacken, wie sie im Internet bei herunterladbaren Programmen sind. Richtig toller Installer...
Man muss skripten, aber laut Quelle ist das durch die Hilfe einfach zu erlernen :allright:

Verfasst: 28.04.2006 14:58
von obbba
Ich probiers mal.
Danke.

Ich will es mal selber machen. So zum üben.

Verfasst: 28.04.2006 15:00
von ts-soft
Das macht eine Installatation, die meist unnötig ist, aber das Programm
findet doch seine Bilder nicht dadurch :mrgreen:
Für Einsteiger wäre sowies Inno-Setup besser geeignet, bessere Tools und
einfachere Skripte.

Verfasst: 28.04.2006 18:59
von vonTurnundTaxis
Wenn Inno-Setup, dann mit IS-Tool.

Verfasst: 04.05.2006 19:58
von Kaeru Gaman
@Obbba

dein kernproblem ist, dass du wohl beim laden von bildern den kompletten pfad der datei angibst, das ist ebenso umständlich wie überflüssig.

wenn das programm ausschließlich läuft, wie z.b. ein kleines spielchen, dann ist der pfad in dem sich die exe befindet automatisch der aktuelle pfad, also mit

Code: Alles auswählen

LoadSprite(0, "Bild.bmp")
wird das bild geladen, das im selben verzeichnis wie die .exe ist.
genauso kannst du auf unterordner zugreifen, also

Code: Alles auswählen

LoadSprite(0, "Bilder\Bild.bmp")
sucht im verzeichnis der .exe das verzeichnis "bilder" und darin das Bild.

wenn das programm abwechselnd mit anderen programmen läuft, was win-anwendungen ja meistens tun, kann das aktuelle verzeichnis natürlich wechseln, dann benutzt du die Procedure, die ts gepostet hat, um das verzeichnis in dem sich die .exe befindet herauszufinden.

mit installern ist das ganze zwar auch möglich, aber für kleine projekte zu umständlich.
ein einfaches .zip, was man dahin entpacken kann wohin man will erfreut sich größerer beliebtheit... ;)

Verfasst: 04.05.2006 20:17
von ts-soft
Kaeru Gaman hat geschrieben: wenn das programm ausschließlich läuft, wie z.b. ein kleines spielchen, dann ist der pfad in dem sich die exe befindet automatisch der aktuelle pfad,
Aber nur wenn es per Doppelclick oder mit einer Vernüpfung, in der "Ausführen in" eingetragen wurde, gestartet wird! Ansonsten lieber meinen
obigen Code verwenden, bzw. besser immer, der aktuelle Pfad kann auch
nachträglich von anderen Programmen geändert werden! Man darf nicht
unterstellen, das nur dieses eine Programm gerade läuft!

Verfasst: 04.05.2006 20:19
von Kaeru Gaman
ja, ok, ts, wo du recht hast, hast du nunmal recht... ;)

...aber nie, nie, niemals und unter keinen umständen absolute pfade verwenden.

Verfasst: 04.05.2006 20:20
von Joel
Kann man eigentlich irgentwie auf dass Standard Installations Programm zugreifen. Dass heiß glaub ich Install-Witzard oder shield.