Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Externes Programm aus VBDOS aufrufen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
K-Duke



Anmeldungsdatum: 23.04.2005
Beiträge: 8

BeitragVerfasst am: 23.04.2005, 20:58    Titel: Externes Programm aus VBDOS aufrufen Antworten mit Zitat

Heidi Ho Leute!

Ich komm mal direkt zum pun.. mit dem Kopf durch die Mauer wollen *autsch* ......



moment das war der falsche Weg!

Also!
Ich habe echt eine MENGE alter Dosspiele jetz auf meinem Rechner installiert! (40 GB Platte in nen alten 300 Mhzer durchgeknallt )
Ich find langsam echt nicht mehr da durch. Deswegen habe ich ein VB-Dosprog geschrieben, in dem ich die ganzen Spiele schön aufgelistet auswählen kann! Jetzt is mir aber glatt aufgefallen, dass ich gar nich weiß, wie und ob man aus VB-Dos externe Programme/Spiele starten kann!?

Drum frag ich euch, sag ihr gut drauf durchgeknallt ?

ARGH! wieder abgekommen

Drum frag ich euch, geht das? Und wenn ja, wie?

Ich bin euch jetz schon dankbar, dass ihr den Dreck hier lesst grinsen

mfg!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bernd



Anmeldungsdatum: 14.09.2004
Beiträge: 498
Wohnort: Kulmbach

BeitragVerfasst am: 23.04.2005, 21:10    Titel: Antworten mit Zitat

Hallo, erst mal:
schau das nächste mal bitte ins QB-Monster FAQ!

Da steht nämlich folgendes drin:

Zitat:
Frage Deutsch
~~~~~~~~~~~~~
Wie kann ich andere Programme von meinem Programm aus aufrufen?


Question English
~~~~~~~~~~~~~
How can my QBasic program call other external programs?


Antwort 1
~~~~~~~~~~~
[ von BufferUnderrun und Thomas Antoni, 11.1999 - 16.5.2002 ]

*** Möglichkeit 1 Verwende den SHELL-Befehl:
Willst Du z.B. in deinem QBasic-Programm irgendwo das Programm proggy.exe aufrufen, so verwende den Befehl
SHELL "proggy.exe" oder SHELL "proggy.exe parameter1, parameter1 ..."


*** Möglichkeit 2: Laß Dein QBasic-Programm eine Batch-Datei erstellen und aufrufen:
SHELL frißt leider sehr viel Speicher. Soll das externe Programm am Ende Deines QBasic-Programms aufgerufen werden gibt es die alternative, speichersparende Möglichkeit, BATCH-Dateien zu verwenden:

Eine Batch-Datei "program.bat" zum Starten Deines kompilierten QBasic-Programms "prog-bin.exe" könnte so aussehen:
@echo off
prog-bin.exe
REM prog-bin.exe ist das kompilierte Programm
execute.bat
REM execute.bat wird je nach Bedarf von prog-bin.exe erstellt
REM ******* Ende von program.bat *******

"execute.bat" ist hierbei eine Batchdatei, die von "prog-bin.exe" erst zur Laufzeit erstellt wird.

Da das Programm execute.bat ja erstellen muß ist folgendes anstatt SHELL "blabla.exe" einzufügen:
OPEN "O", #1, "execute.bat"
PRINT #1, "@echo off"
PRINT #1, "blabla.exe" '(*)
PRINT #1, "program.bat"
CLOSE #1
END 'Durch das Beenden wird die eben erstellte execute.bat gestartet

(*):
Sollen Parameter verwendet werden, einfach PRINT #1, "blabla.exe /param1 /param2" etc. angeben
Soll eine BAT-Datei anstatt einer COM oder EXE gestartet werden Muß folgendes verwendet werden: PRINT #1, "CALL blabla.bat" (bzw. "CALL blabla.bat /param1 /param2 ..." )
Wird CALL weggelassen, wird execute.bat einfach beendet und program.bat deshalb nicht mehr gestartet!

Soll jetzt das ganze Programm beendet werden muß der Inhalt von execute.bat (nicht die Datei, sonst gibt's eine unschöne Fehlermeldung) natürlich gelöscht werden:
OPEN "O", #1, "execute.bat": CLOSE #1 'saucooler Trick! lächeln)

Bei diesem ganzen Beispiel muss #1 natürlich eventuell gegen eine noch freie Dateinummer ausgetauscht werden (datn = FREEFILE liefert die erste noch freie Dateinummer)


*** Möglichkeit 3: Verwende die Befehle CHAIN oder RUN::
Mit Hilfe dieser Befehle kannst Du ein externes QBasic-Programm aufrufen, das bei CHAIN sogar dieselben Variablen wie das Ursprungsprogranm benutzen kann!! Nach Beenden des externen Programms wird die Kontrolle an das aufrufende Programm zurückgegeben, das dann an der alten Stelle weiterläuft.

Hierzu ein Ausschnitt aus Thomas Antonis QBasic-Kochbuch (Download auf unter http://www.qbasic.de in der Rubrik "QBasic -> Tutorials"):
- CHAIN [Pfadname$] <Dateiname$> - übergibt die Kontrolle von dem aktu-
ellen Programm an das BASIC-Programmmodul <Dateiname$> {11/454}.
Eine automatische Rückkehr ins alte Programm findet nicht statt.
Beispiel: CHAIN "C:\DOS\TEST.BAS"
- COMMON [SHARED] <Variablenliste> - Definition von Variablen und Feldern, die
auch von anderen externen "gechainten" Programmmoduln verwendbar
sind. Die Reihenfolge der Variablen in der Variablenliste muß in
beiden Programmen genau gleich sein! Bei Verwendung von SHARED sind
die Variablen auch von allen SUBs/FUNCTIONs zugreifbar. {11/454}
- RUN [Pfadname$] <Dateiname$> - startet ein externes Programm. Wie
CHAIN, jedoch werden vor dem Start des externen Programms alle
Variablen gelöscht und alle offenen Dateien geschlossen.
Beipiel: RUN "C:\DOS\TEST.BAS"

Answer 2
~~~~~~~~
How do I run other progs from within my program?

Use the SHELL command. You can either have it bring up a dosbox, where you type 'exit' to get back, or you can have it execute a statement. For example...
SHELL "someprog.exe somethin.txt"



Bernd

PS: ich hoffe ich werde jetzt von keinem Mod gelüncht, weil ich nicht gelinkt habe, sondern sonen Monsterbeitrag geschrieben hatte, aber Linken konnte ich nicht... durchgeknallt
_________________
Neue Homepage: http://www.glubb.rockt.de

UND

Der Wahnsinn hat seine eigene Homepage: http://pulmollwand.rulz.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
K-Duke



Anmeldungsdatum: 23.04.2005
Beiträge: 8

BeitragVerfasst am: 23.04.2005, 21:18    Titel: Sorry für not faq-reading Antworten mit Zitat

Sorry, das ich das FAQ nicht gelesen habe, jedoch dachte ich, da würde wieder (wie in den meisten Foren) nur drinstehen erst nachschauen obs das gibt, bevor man neues Thema postet und sowas verwundert

auf jedenfall big THX *dichganzdollanmichknuddel*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz