BB-Applikation aus BB-Applikation starten

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

jonnyboy

Betreff: BB-Applikation aus BB-Applikation starten

BeitragFr, Apr 04, 2008 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Blitzer Smile

Ich habe ein Problem.. und zwar brauche ich für mehrere Spiele und Programme, die ich in Planung habe, eine "flexible" steuerung zwischen Programmteilen, eine Art zusatzmodul.
Also das heißt, das ich zB ein programm habe. Und dort gibt es dann den Befehl ExecFile, sodass man dann auf eine andere BB-.exe-Datei kommt.

Ich habe dazu aber 2 Fragen: Erstens hätte ich gerne, das das fließend ineinander übergeht, d.h., man kommt nicht kurz zwischendurch zum Desktop von Windows zurück, whärend die Ausführung geladen wird.
Also so in der Art von dem Include "soundso.bb"-befehl, nur das es nicht mitkompiliert werden soll.
Also: geht das, das man denkt,es wäre eine Ausführung?

Und 2tens habe ich dazu direkt mal einen kleinen test gemacht. Darin wird zwar das aktive fenster minimiert, aber keine neue Datei geöffnet. (Aber falls ihr auf den ersten Blick keine Fehler seht,wird es ja vielleicht ein Fehler in der Pfadangabe sein, ich finde ihn nur nicht!^^)

Danke füreure Hilfe,

JONNY

Code: [AUSKLAPPEN]
Graphics 1280, 1024

Repeat

x = Input("Code eingeben:")
If x = 123 Then

bla$ = "\Space Hunt 1.21 ALPHA\Space Hunt 1.exe"
ExecFile bla$

End If

Until KeyHit(1)
End

The_Nici

BeitragFr, Apr 04, 2008 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du Rufst das zweite Spiel erst auf wenn eine IF-bedingung erfüllt ist, dann ist ja alles gut?

jonnyboy

BeitragFr, Apr 04, 2008 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
öhm.. bitte??^^ Entschuldigung aber deinen Post checke ich überhaupt nicht...

EDIT:
achja, habe noch den befehl eingesetzt daas x auf 0 dann gesetzt wird in der schleife..War ein kleiner fehler, aber hab das auf die schnelle geschrieben um es auszuprobieren.. es klappt aber immernchnicht...
 

ChristianK

BeitragFr, Apr 04, 2008 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Du willst also den Text, den das 2. Programm ausgibt im ersten Fenster anzeigen lassen oder das Programm "ersetzen"? -> Geht nicht!
Jede .exe-Datei wird komplett in den Speicher geladen und dann eigenständig ausgeführt, sowas macht also keinen Sinn.
Kannst du sagen, wofür du das brauchst? Vielleicht gibt es ja bessere Alternativen.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

The_Nici

BeitragFr, Apr 04, 2008 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
jonnyboy hat Folgendes geschrieben:
öhm.. bitte??^^ Entschuldigung aber deinen Post checke ich überhaupt nicht...

EDIT:
achja, habe noch den befehl eingesetzt daas x auf 0 dann gesetzt wird in der schleife..War ein kleiner fehler, aber hab das auf die schnelle geschrieben um es auszuprobieren.. es klappt aber immernchnicht...

Wenn du das ganze als Code hast kannst du einfach den Code includen.

Code: [AUSKLAPPEN]

If spielstarten then
   Include Spiel
EndIf

jonnyboy

BeitragFr, Apr 04, 2008 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
@ChristianK: Neinein, da hast du mich falsch verstanden...

Also, vergesst am besten den BeispielCode... Das war halt nur nen kleiner Test. halt ein kleines Programm, wo ein Input kommt. wenn man da dann 123 eingibt, dann soll er eine andere Applikation öffnen. Aber das klappt leider schon nicht....

Ich bringe mal ein Beispiel:

Ich programmiere also erstmal ein Spiel, ich nenne es mal x-Fight. Das speicher ich dann halt als .exe.
So, und nun mache ich ein ganz neues Projekt. Da drin gibts dann halkt ein Menü, wo man dann X-Fight auswählen kann. So, und wenn man dann mit der maus darauf klickt, dann würde ich gerne (vllt mit ExecFile, hab ich mir gedacht) das .exespiel starten.

Erste Frage: geht das überhaupt so?
Zweitens: Dabei soll es aber halt nicht dazu kommen, das ich kurz auf dem Windows-bildschirm bin, sehe, wie sich mein Programm minimiert, dann sehe, wie das X-Fight-exe geöffnet wird, sondern flüssig. Ebenfalls möglich?

Grund: ich möpchte eine Art Spieleplattform machen, wo man dann halt Spiele oder kleine Programme öffnen kann. Dabei möchte ich aber auch Updates einbauen, d.h. ich möchte halt verlinkungen auf Dateien machen, die nicht da sind zB. Wenn diese nicht da sind, gibts den Menüpunkt halt nicht, wenn sie da sind, kann man sie anklicken und sie werden aufgerufen.

So, und DAS ganze geht ja leider nicht mit Include, weil da ja dann das Script mitrein kompiliert wird, oder?

Danke für euere Hilfe..


Gruß, Jonas

The_Nici

BeitragFr, Apr 04, 2008 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
1. es ist kein Script, sondern ein Code. Scripten<>Coden.
2. Na und? Du führst ihn erst in der Bedingung aus. Sollte ja nicht stören. Oder willst du die Menü-Exe separat?
 

Shark

BeitragFr, Apr 04, 2008 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
weioWei....
The_Nici er will einfach eine Exe die einfach als Menü dient. Bei diesem Menü kann man verschiedene Spiele auswählen. Wenn man eins ausgewählt hat, dann soll das Spiel starten, das eine eigene exe besitzt.

@jonnyboy

Also der BefehlCode: [AUSKLAPPEN]
 ExecFile
klappt einwandfrei.

Ich habs eben getestet, aber "flüssig" ist es nicht.
Naja ich denke mal das es nicht so start stört Wink

mfg Shark

jonnyboy

BeitragFr, Apr 04, 2008 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm.. entschuldigung, aber ich glaube, ihr versteht mich nicht Smile Warscheinlich hkann ich es nicht gut genug erklären.. also Shark versteht es vllt schon, aber es ist wichtig, das es "flüssig" ist... es soll halt so aussehen, als würde das alles EIN Programm sein... es geht noch, wenn er nicht SOFORT die Applikation startet, aber es darf haltnicht zu windows zurückgehen...

Es soll halt wie bei Include sein, er soll die Applikation sirekt starten, whärend die andere im Hintergrund halt pausiert.. und wenn man das spiel beendet hat, soll es sofort in das andere Programm...
 

Shark

BeitragFr, Apr 04, 2008 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Es soll halt wie bei Include sein, er soll die Applikation sirekt starten, whärend die andere im Hintergrund halt pausiert.. und wenn man das spiel beendet hat, soll es sofort in das andere Programm...


Naja wenn man in BB Execfile benutzt, dann will er sofot zum Fenster wechseln, obwohl es noch nicht aufgebaut ist.
Du könntest eventuell versuche mit Winapi eine Exe zu starten( ShellExecute ) und dann das Fenster mit Winapi wechseln, dann wenn das Fenster vollständtig aufgebaut ist [dauer 2 - 3 Sekunden].

Da muss du dich wohl oder übel mit Winapi auseinander setzen.
Im FAQ gibt es zu Winapi auch ein nettes Tutorial Smile

mfg Shark

jonnyboy

BeitragFr, Apr 04, 2008 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
aja, okay, danke für die Hilfe. Dann habe ich wohl wirklich keine andere Wahl als mir WinApi anzugucken... Wink
Dankeschön für die Antorten Wink
 

Shark

BeitragSa, Apr 05, 2008 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hätte da noch eine Idee für dich Wink
Du könntest ja das Menü im Fenstermodus starten Wink
Dann sieht der Übergang flüssig aus, wenn du in ein Spiel gehst, das dann im Vollmodus gespielt wird.
Außerdem gibt es hier irgendwo ne datei die dieses erste Fenster von BB, bevor das richtige programm startet entfernt,
weiß jetzt aber net wie das heißt... sorry...

mfg Shark

Eingeproggt

BeitragSa, Apr 05, 2008 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Shark meint wahrscheinlich StartupFix.

mfG, Christoph.
 

Shark

BeitragSa, Apr 05, 2008 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Richtig.
Danke Eingeproggt

jonnyboy

BeitragSa, Apr 05, 2008 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja hey... Also die Tipps sind alle sehr gut, danke erstmal dafür... Smile

Aber es lässt sich warscheinlich nciht so auf mein projekt anwenden...

Also, ich mache schon seid längerem ein Programm, das ich Vain nenne. Ich nenne es, ein "Unterbetriebsprogramm". D.h., es ist ein programm,das man halt auf Windows raufspielen kann. Und.. ja, das soll im Vollbildschirm abgespietl werden. Und dort kann man dann wie bei einer Windowesoberfläche Fenster öffnen, Menüpunkte abrufen etc.

So, und dort sollen dann halt Programme und Spiele drüber geöffnet werden, die ich aber nicht direkt in die "Vain-Betriebssystemoberfläche" einbauen will, damit man sich, wenn man sich ein neues Programm oder Spiel für Vain runtergeladen hat, nicht direkt das gesamte Betriebssystem wieder neu installieren muss.
Und.. wenns unbedingt nötig ist, muss ich halt zwischenzeitig, um auf die Programme oder Spiele zugreifen zu können, zurückzu Windows (also daas der dann kurz die "Fenster wechselt".
Aber es wäre einfach viel geiler, wenn das (auf eine relativ einfache weise, denn ich bin noch größtenteils ein Noob mit BB) halt durchweg ginge.
 

ChristianK

BeitragSa, Apr 05, 2008 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Sag doch gleich, dass das Programm im Vollbild läuft. Smile
So ist das nämlich nicht möglich, denn das "richtige" OS ist immer noch Windows und wenn du dein Programm im Vollbild startest, bekommt es die Kontrolle über den VRAM ( vereinfacht gesagt ). Es können also nicht 2 Programme gleichzeitig im Vollbild laufen, deshalb muss immer eins beendet werden, was zwangsläufig dazu führt, dass auch das Fenster geschlossen wird und Windows zum Desktop zurückkehrt.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

jonnyboy

BeitragSo, Apr 06, 2008 1:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ist es dann wohl am besten, wenn ich die Spiele nund Programme nicht als neue Applikationen starte, sondern alles dirkt alsein Programm mache... Das ist zwar schade, aber es ist wohl die beste Lösung... Wink

mfg, Jonny

AMY

BeitragSo, Apr 06, 2008 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso du kannst doch auch in deinem Oberflächenprogramm einfach statt execfile include beutzen. Warum sollte dies Schade sein,denn ist vielleicht sowieso besser da die bb-dateien weiniger speicher verbrauchen. Und falls dir das zu unsicher ist kann man die Dateien ja noch verschlüsseln und dann müsste es auch so funktionieren wie du möchtest. Du fragst einfach bei deinem Menü bei jedem Start alle SpieleCodes ab die in einem Verzeichnis sind. So kann man auch recht einfach bugfixes machen oder andere kleine Änderungen an deinen Spielen. Und dadurch das du sie verschlüsselst kann dies kein anderer. Ich finde dies ist eine sichere und einfache Methode um eine Plattform zu bauen.
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!
 

ChristianK

BeitragSo, Apr 06, 2008 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
AMY,
das stimmt so nicht. Includes werden beim Kompilieren in die .exe Datei integriert. Man kann sie nicht nachträglich einfügen.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

jonnyboy

BeitragSo, Apr 06, 2008 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
@AMY:
ja, das was ChristianK gesagt hat, war auch mein wissensstand... Die Sachen, die man per Include aufruft, werden direkt mit in EINE .exe kompiliert, sodass das praktisch "statisch" ist.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group