 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
K-Duke
Anmeldungsdatum: 23.04.2005 Beiträge: 8
|
Verfasst am: 23.04.2005, 20:58 Titel: Externes Programm aus VBDOS aufrufen |
|
|
Heidi Ho Leute!
Ich komm mal direkt zum pun.. *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 )
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 ?
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
mfg! |
|
Nach oben |
|
 |
Bernd

Anmeldungsdatum: 14.09.2004 Beiträge: 498 Wohnort: Kulmbach
|
Verfasst am: 23.04.2005, 21:10 Titel: |
|
|
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! )
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...  _________________ Neue Homepage: http://www.glubb.rockt.de
UND
Der Wahnsinn hat seine eigene Homepage: http://pulmollwand.rulz.de |
|
Nach oben |
|
 |
K-Duke
Anmeldungsdatum: 23.04.2005 Beiträge: 8
|
Verfasst am: 23.04.2005, 21:18 Titel: Sorry für not faq-reading |
|
|
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
auf jedenfall big THX *dichganzdollanmichknuddel* |
|
Nach oben |
|
 |
|
|
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.
|
|