Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Beatzler2
Anmeldungsdatum: 24.08.2009 Beiträge: 22
|
Verfasst am: 08.09.2009, 16:57 Titel: Mit QBasic andere EXE aufrufen und danach QBasic EXE beenden |
|
|
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
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 08.09.2009, 17:48 Titel: |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 08.09.2009, 17:49 Titel: |
|
|
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  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 08.09.2009, 17:52 Titel: |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 08.09.2009, 17:53 Titel: |
|
|
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 |
|
 |
Beatzler2
Anmeldungsdatum: 24.08.2009 Beiträge: 22
|
Verfasst am: 08.09.2009, 18:06 Titel: |
|
|
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 !
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 08.09.2009, 18:13 Titel: |
|
|
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 |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 08.09.2009, 19:32 Titel: |
|
|
Ich würde das löschen, die start.exe gehört immernoch Microsoft... |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 08.09.2009, 20:19 Titel: |
|
|
...genauso wie die qb.exe und die qbx.exe, die es überall zum Download gibt . 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 , 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 |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 08.09.2009, 22:01 Titel: |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.09.2009, 00:05 Titel: |
|
|
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 |
|
 |
Beatzler2
Anmeldungsdatum: 24.08.2009 Beiträge: 22
|
Verfasst am: 09.09.2009, 13:56 Titel: |
|
|
Hey,
danke für die zahlreichen Antworten
@ dreael
Danke mit deinem Tipp klappt es nun auch unter XP. Auch mit Pfadangabe Hätte man auch selbst drauf stoßen können
@ 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 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 |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 09.09.2009, 15:34 Titel: |
|
|
Ist es St_W. Du stiehlst damit quasi geistiges Eigentum UND machst es anderen zugänglich. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.09.2009, 19:35 Titel: |
|
|
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 |
|
 |
Beatzler2
Anmeldungsdatum: 24.08.2009 Beiträge: 22
|
Verfasst am: 09.09.2009, 22:38 Titel: |
|
|
Hey,
mhh leider steig ich da grad durch freebasic gar nicht durch
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
Ohh man
Hoffentlich klappt das ?!
Vielen Dank im vorraus!
MFG Beatzler |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.09.2009, 22:40 Titel: |
|
|
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 |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Beatzler2
Anmeldungsdatum: 24.08.2009 Beiträge: 22
|
Verfasst am: 09.09.2009, 22:46 Titel: |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 09.09.2009, 23:34 Titel: |
|
|
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 |
|
 |
|