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:

Mit QBasic andere EXE aufrufen und danach QBasic EXE beenden
Gehe zu Seite 1, 2  Weiter
 
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
Beatzler2



Anmeldungsdatum: 24.08.2009
Beiträge: 22

BeitragVerfasst am: 08.09.2009, 16:57    Titel: Mit QBasic andere EXE aufrufen und danach QBasic EXE beenden Antworten mit Zitat

Hey,

folgendes Problem:

Möchte gerne mittels PHP und dem Exec Befehl ein Programm starten und schließen lassen. Dies klappt soweit auch ganz gut nur leider wartet Exec ja unter Windows immer auf beenden / Rückmeldung vom Programm bevor dann der restliche PHP Code abgearbeitet wird....


Dachte nun ich schreibe mir mit Q-Basic eine .exe welche dann das eigentliche Programm welches gestartet werden soll startet und sich danach wieder schließt um dann die Q-Basic Exe mittels PHP Aufzurufen....

Ohh man ich hoffe man versteht was ich meine Zunge rausstrecken


Nun habe ich mit dem SHELL befehl versucht die exe zu starten, die wird auch gestartet nur es wird dann auch mit dem Q-Basic Programm solange gewartet bis das Programm wieder geschlossen wird, warum ?

Wie kann ich das am besten ändern / realisieren ?

Nochmals zur Verdeutlichung:

Q-Basic Programm startet Programm.exe und schließt sich dann wieder sofort nachdem das Programm gestartet wurde. Durch das schließen des Q-Basic Programmes ( welches ja mittels PHP Exec gestartet wurde ) erhält nun der exec Befehl seinen Rückgabewert und fährt im restlichen Skript ganz normal fort ....


Vielen Dank für Tipps !


MFG Beatzler
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 08.09.2009, 17:48    Titel: Antworten mit Zitat

Laut Referenz sollte dir SHELL "START ..." weiterhelfen. Andererseits - unter QBASIC gibt es keine Parallelität, funktioniert also vielleicht doch nicht?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.


Zuletzt bearbeitet von nemored am 08.09.2009, 17:49, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.09.2009, 17:49    Titel: Antworten mit Zitat

du musst über einen umweg start.exe benutzen, aber das kannst du in PHP genau so gut bzw besser als in QBasic. Oder WinAPI benutzen...

QBasic ist ein DOS-Programm und DOS kennt kein Multitasking, deswegen hält auch QBasic bei SHELL an!

EDIT: Nemored war schneller happy
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 08.09.2009, 17:52    Titel: Antworten mit Zitat

Wenn ich das dann richtig verstehe, wird start.exe "DOS-mäßig" gestartet (QBASIC hält an), startet das gewünschte Programm in Multitasking-Umgebung, beendet sich selbst und gibt damit die Kontrolle an QBASIC zurück?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.09.2009, 17:53    Titel: Antworten mit Zitat

ja, es tut so ungefähr das selbe wie der WinAPI-Befehl ShellExecute.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beatzler2



Anmeldungsdatum: 24.08.2009
Beiträge: 22

BeitragVerfasst am: 08.09.2009, 18:06    Titel: Antworten mit Zitat

Hey,

vielen Dank für eure Tipps !

Also habe ich eine QBasic erstellte Exe mit dem Inhalt

CLS
SHELL "Programm.exe"
END

und liegt diese im Programm.exe verzeichnis startet das Programm und die Basic Exe wartet solange bis das Programm wieder geschlossen wird.

Versuche ich das gleiche nun mit
CLS
SHELL "START Programm.exe"
END

Oder SHELL "START C:\Programme\programm.exe"

Klappt es leider nicht, das Programm wird nicht gestartet !

traurig

Wie meint ihr es jetzt genau ?!?

@ Jojo

Magst du mir den "Umweg" mit der Start.exe mal genauer erklären ?

Danke !

MFG Beatzler
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.09.2009, 18:13    Titel: Antworten mit Zitat

vielleicht wäre es mal sinnvoll sich die fehlerangabe dazu anzusehen. ich habe seit jahren kein qb benutzt, weiß also nicht mehr was die fallstricke hier sind. Und da du ja von php aus eh schon ein EXEC ausführst, solltest du auch in PHP das gleich so einsetzen:

Code:

exec("start C:\Windows\system32\calc.exe");


EDIT: Und der "umweg" ist einfach "SHELL "start.exe"". Aber wie gesagt, QBasic ist DOS, und DOS unter Windows hat seine Tücken.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 08.09.2009, 18:51    Titel: Antworten mit Zitat

Die Start.exe ist übrigens nur in den älteren Windows Systemen vorhanden. Windows XP und Vista haben diese z.B. schon in der cmd.exe integriert.

Die START.EXE aus Windows 95 habe ich in folgendem ZIP Archiv mit einem alten und einem neuen Beispielprogramm hochgeladen. Vielleicht hilft es ja:
http://wurzinger.bplaced.net/files/programmierung/qb/Programmstarter.zip
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 08.09.2009, 19:32    Titel: Antworten mit Zitat

Ich würde das löschen, die start.exe gehört immernoch Microsoft...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 08.09.2009, 20:19    Titel: Antworten mit Zitat

...genauso wie die qb.exe und die qbx.exe, die es überall zum Download gibt zwinkern. Das selbe Archiv ohne das neue kurze Beispielprogramm liegt schon seit 2007 auf einem funpic-Server (und ist hier im Forum übrigens schon einmal verlinkt) und es hat sich noch niemand beschwert. Bis mir Microsoft eine E-Mail schickt hab ich nicht unbedingt vor das zu löschen lächeln, außer es wäre ein so grober Verstoß gegen das Urheberrecht, was ich mir aber nicht vorstellen kann.
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.09.2009, 22:01    Titel: Antworten mit Zitat

St_W hat Folgendes geschrieben:
Die Start.exe ist übrigens nur in den älteren Windows Systemen vorhanden. Windows XP und Vista haben diese z.B. schon in der cmd.exe integriert.

=> Dann am besten
Code:
SHELL "cmd /c start foobar.exe"

verwenden. Dran denken, dass SHELL in QB immer auf die selbst bei XP und Vista noch vorhandene 16-Bit-COMMAND.COM zurückgreift!
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 09.09.2009, 00:05    Titel: Antworten mit Zitat

Warum so verquert denken? Es ging darum, aus PHP heraus etwas auszuführen, und dazu ist die einfachste lösung, start direkt in php aufzurufen. geht ohne probleme, ohne verquertes DOS.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beatzler2



Anmeldungsdatum: 24.08.2009
Beiträge: 22

BeitragVerfasst am: 09.09.2009, 13:56    Titel: Antworten mit Zitat

Hey,

danke für die zahlreichen Antworten lächeln

@ dreael

Danke mit deinem Tipp klappt es nun auch unter XP. Auch mit Pfadangabe zwinkern Hätte man auch selbst drauf stoßen können grinsen

@ jojo

Das Problem ist ja das es eben auch über PHP nicht so klappt wie ich es gerne hätte ....

Habe nun folgenden Stand:

Code:

<?php

exec('"C:\Programm\Q-Basic Start\Start.exe"', $return);
    echo "Das Programm wurde gestartet !";
?>


Die PHP Funktion ruft die mittels Q-Basic generierte Exe auf in der wiederrum der Shell Befehl die eigentliche Programm Exe startet !

Leider wartet jetzt aber auch mit der Variante der PHP Aufruf immer noch auf eine Rückgabe des Programms traurig Wird die Exec Funktion aufgerufen startet das Programm auch nur leider lädt die Seite dann solange bis das Programm wieder beendet wurde und läuft erst dann im restlichen PHP weiter .....

Das gleiche Problem besteht auch wenn ich das Programm direkt starte oder per batch daher dachte ich das es mittels Q-Basic Exe evtl. klappt :/

Hätte vielleicht noch jemand nee idee oder nen Tipp ?

MFG Beatzler
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 09.09.2009, 15:34    Titel: Antworten mit Zitat

Ist es St_W. Du stiehlst damit quasi geistiges Eigentum UND machst es anderen zugänglich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 09.09.2009, 19:35    Titel: Antworten mit Zitat

Start ist irgendwie komisch... Mit dem folgenden FreeBASIC-Code geht es aber, wie schon vorher gesagt:
Code:
Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA"(ByVal As Integer, ByVal As String, ByVal As String, ByVal As String, ByVal As String, ByVal As Integer) As Integer
ShellExecute(0, "open", Command, "", "", 1)

Mit FB kompilieren und von php aus statt "start" aufrufen fertig.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beatzler2



Anmeldungsdatum: 24.08.2009
Beiträge: 22

BeitragVerfasst am: 09.09.2009, 22:38    Titel: Antworten mit Zitat

Hey,

mhh leider steig ich da grad durch freebasic gar nicht durch traurig

Könnte mir evtl. jemand mit FreeBasic eine kleine Exe schreiben ?

Welche z.B. die Batchdatei Start.bat aufruft....

start.bat liegt dann z.b direkt auf C:\Start.bat

Per PHP wird dann die Freebasic Exe aufgerufen welche wiederrrum die start.bat startet die dann das eigentliche Programm aufruft zwinkern

Ohh man grinsen

Hoffentlich klappt das ?!

Vielen Dank im vorraus!

MFG Beatzler
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 09.09.2009, 22:40    Titel: Antworten mit Zitat

was ist denn daran so schwer, die zwei zeilen als .bas-datei abzuspeichern und die als parameter an fbc.exe zu übergeben?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 09.09.2009, 22:45    Titel: Antworten mit Zitat

Beatzler2 hat Folgendes geschrieben:
mhh leider steig ich da grad durch freebasic gar nicht durch traurig

http://www.freebasic-portal.de/tutorials/was-man-fuer-fb-braucht-3.html zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beatzler2



Anmeldungsdatum: 24.08.2009
Beiträge: 22

BeitragVerfasst am: 09.09.2009, 22:46    Titel: Antworten mit Zitat

Mhh okay danke für deine Antwort!

Das sollte ich grad noch so hinbekommen,

vermute mal einfach mittels command dann freebasic.exe programm.bas ?!

Werde ich gleich mal installieren und testen, danke!

Was muss ich an deinem Code ändern um das Programm auszuwählen ?!

Command ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 09.09.2009, 23:34    Titel: Antworten mit Zitat

gar nichts. command solltest du aus qb kennen. du führst das programm in PHP wie auch start.exe aus.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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