Pausieren des Skripts bei system()-Aufruf auf Win32 vermeiden?

Warum bekommst du Tobsucht bei C#?
Ich finde die Sprache super (naja die Syntax entspricht ja eigentlich genau Java, daher müsste man es nicht unbedingt als eigene Sprache deklarieren), das Visual Studio von MS macht die ganze Sache einfach noch besser (Intellisense for president!) und mit dem .NET Framework wird einem viel Arbeit abgenommen.
Und es ist nun mal Tatsache, dass... (wie viele Privatuser? 90%?) Windows benutzen (oder zumindest einen Windows-Rechner im Haus haben), daher macht es mir auch gar nichts, dass das .NET-Zeugs dann nicht auf Linux läuft.

Und du würdest offence mit s schreiben? Naja auch möglich, und wenn ichs mir so anschaue, sieht eigentlich schöner aus.... offense... ja doch ist deutlich ästhetischer...

Naja egal jetzt, diskutier lieber mal wieder über dein Thema^^
 
Ich habe inzwischen so ziemlich alles erdenkliche ausprobiert. Selbst die sinnvollsten Möglichkeiten wie
PHP:
exec("eine.bat > eine.txt");
klappen unter Windows nicht. Kann mir denn wirklich keiner helfen? :(
 
Guck Dir doch mal in der Php Doku die pcntl funktionen an. Da kannst Du Programme in eigenen Threads laufen lassen. Ich denke das könnte eine Lösung für Dein Problem sein.

Viele Grüße
jrook
 
Was klappt eigentlich an start nicht?

Ich hab gerade nochmal einen kleinen Test gemacht.

Batch 1:
test2.bat
------------
Code:
:10 echo Hallo Welt
goto 10

Batch 2:
test.bat
-----------
Code:
start test2.bat
Wenn Du jetzt die test.bat von Deinem Script aus aufrufst, startet Sie die test2.bat in einer eigenen Umgebung. Das müsste doch eigentlich klappen?
Oder musst Du die Kontrolle über die Batchdatei behalten?

Viele Grüße
jrook
 
Ich führe die Windows Bild- und Faxanzeige aus, welche das Skript irgendwie pausiert.
Mit einer batch Funktioniert es Leider auch nicht.
Unter Unix ist das Ganze kein Problem: > /dev/null &
 
OK, zu start hab ich folgendes gefunden und das wird wahrscheinlich der Grund sein, warum es nicht klappt.

Wird eine grafische 32-Bit-Anwendung aufgerufen, wartet cmd nicht auf das Beenden dieser Anwendung, sondern kehrt sofort zur Eingabeaufforderung zurück. Das gilt nicht, wenn diese Anwendung aus einem Befehlsskript heraus aufgerufen wird.
Aber kannst Du dich denn nicht daraus befreien, indem du eine Batch aufrufst, die eine andere batch aufruft?

Ich könnte mir vorstellen, dass es mit call klappt.

Eine gute Dokumentation der DOS-Befehle findest Du hier.

http://www.winhelpline.info/daten/dos/

Solltest Du dein Problem behoben haben bitte Rückinfo, das interessiert mich ja jetzt schon brennend.


Viel Erfolg
jrook
 
Aber kannst Du dich denn nicht daraus befreien, indem du eine Batch aufrufst, die eine andere batch aufruft?
Danke noch einmal für deine Bemühungen, aber leider funktioniert es immer noch nicht.
Ich habe es so probiert:
batch1.bat
Code:
START batch2.bat
und in der batch2.bat führe ich das Win32 Programm mit GUI aus.
Leider wartet batch2.bat nun darauf, dass das Win32 Programm geschlossen wird,
batch1.bat darauf, dass batch2.bat geschlossen wird und
PHP darauf, dass batch1.bat geschlossen wird :(

//Funktioniert leider auch nicht, wenn ich "CALL" anstatt "START" benutze :/
 
Zuletzt bearbeitet:
Zurück