Installationsprogramm
Installationsprogramm
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?
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?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
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"
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Installationssysteme
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
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

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Das macht eine Installatation, die meist unnötig ist, aber das Programm
findet doch seine Bilder nicht dadurch
Für Einsteiger wäre sowies Inno-Setup besser geeignet, bessere Tools und
einfachere Skripte.
findet doch seine Bilder nicht dadurch

Für Einsteiger wäre sowies Inno-Setup besser geeignet, bessere Tools und
einfachere Skripte.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
Wenn Inno-Setup, dann mit IS-Tool.
Zuletzt geändert von vonTurnundTaxis am 08.05.2006 15:19, insgesamt 1-mal geändert.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@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
wird das bild geladen, das im selben verzeichnis wie die .exe ist.
genauso kannst du auf unterordner zugreifen, also
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...
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")
genauso kannst du auf unterordner zugreifen, also
Code: Alles auswählen
LoadSprite(0, "Bilder\Bild.bmp")
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...

Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Aber nur wenn es per Doppelclick oder mit einer Vernüpfung, in der "Ausführen in" eingetragen wurde, gestartet wird! Ansonsten lieber meinenKaeru 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,
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!
Zuletzt geändert von ts-soft am 04.05.2006 20:20, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22