PHP Mit PHP ein Batch Script starten

Shadow1701

Ensign
Registriert
Juli 2012
Beiträge
221
Hi

ich bin gerade dabei etwas zu automatisieren. Im Grunde bin ich fertig damit, nur die Ausführung funktioniert nicht.
Win10 Pro, Xampp mit PHP 7

Ein PHP Script ruft sich alle 5 Minuten selbst im Browser auf, sammelt informationen und erzeugt eine Batch Datei die dann ausgeführt werden soll. In der Batch Datei sind ein paar, je nach Zweck, verschiedene MouseRecorder Scripts drinnen.

Das Problem, das Batch script wird nicht gestartet.

Das hier Funktioniert:
PHP:
<?php
    exec("c:\ordner\ordner\batch.bat");
    ?>
batch.bat
Code:
@echo off
start calc.exe
exit

Die Batch Datei wird aufgerufen und der Rechner wird geöffnet. Jetzt möchte ich aber statt dem Rechner den MouseRecorder aufrufen, dieser wird mit Parametern gestartet.
Beispiel:
"C:\Program Files (x86)\Nemex\Mouse Recorder Pro 2\Mouse Recorder Pro.exe" "C:\xampp\htdocs\m2s\firstklick.m2s" -count1 -autorun -end
Das funktioniert nicht. MouseRecorder wird nicht gestartet.

In keinen Fall erscheint die Eingabeaufforderung, die läuft immer im Hintergrund.

Wie kann ich mit PHP ein Batch Script so starten, das Buchstäblich das Fenster aufgeht und ich in der Eingabeaufforderung mitlesen kann? Es ist mir schon klar das PHP eine serverseitige Scriptsprache ist und CMD im Hintergrund gestartet wird, es gibt doch bestimmt eine Lösung?
 
Shadow1701 schrieb:
Ich verstehe nicht wie mir das weiterhelfen kann?

Das gibt die Rückmeldung vom Programm(also deiner batch/mouserecorder) zurück, wahrscheinlich wirft das nen Fehler und du siehst ihn nicht.

Mal so ins Blaue: entweder rufst du es falsch auf oder evtl hat der User unter dem der Apache läuft gar nicht die Berechtigung das zu starten?
 
Versucht habe ich es. Ich bekomme aber gar keine Rückmeldung, das Array $output ist leer.

Gestartet wird der Apache Dienst mit dem Benutzer mit dem ich selbst angemeldet bin.
 
Ich habe das ganze umgebaut, das script das die Daten sammelt und entscheidet ob eine batch Datei gestartet werden muss oder nicht wird jetzt selbst in einem Batch script ausgeführt. Dieses entscheidet ob ein "Automatisierungs Batch Script" erstellt wird oder nicht. Nach Ausführung des PHP Scripts wird immer versucht das "Automatisierungs Batch Script" zu starten. Ist es vorhanden wird es ausgeführt, wenn nicht wird es übersprungen und die Schleife beginnt alle paar Minuten von neuem.

Zusätzlich habe ich noch ein info Script erstellt das mir im Browser anzeigt was aktuell und in der vergangenheit passiert ist und ob es erfolgreich war.

PHP ist nicht wirklich geeignet irgendwelche Programme zu starten.
 
Hi,

PHP ist nicht wirklich geeignet irgendwelche Programme zu starten.

kann ich nicht bestätigen. Ich hatte Projekte, da wurden darüber per Batch PDF Umwandlungen gestartet, Festplatten eingebunden und ausgeworfen, C# Programme angeworfen usw. PHP ist dazu durchaus geeignet.

VG,
Mad
 
Einverstanden. Das Starten des Rechners hat auch problemlos funktioniert. Andere Programme funktionieren sicher auch. Das Einzige was ich nicht geschaft habe ist CMD so zu starten, dass es als sichtbares Fenster geöffnet wird. Es lief immer nur im Hintergrund. Trotz google suche und 200.000 Foren Beiträgen zu dem Thema habe ich das nicht geschafft.

Liegt wahrscheinlich an meiner Unfähigkeit. Meine Lösung habe ich in den letzten Stunden so testen können, dass alle verschiedene Möglichkeiten einmal abgedeckt wurden und als Funktionstüchting eingestuft wurden. Passt.
 
Hi,

weil die Shell dann in der selben Instanz wie der Apache läuft - und bei dir vermutlich dann im Service. Starte den Apache direkt aus deiner Session per "httpd.exe" und versuch es nochmal, dann sollte das vermutlich auch klappen. Oder du musst etwas in Richtung Impersonation machen.

Frage ist allerdings viel mehr: warum sollte die CMD im Vordergrund starten, bei einer Client-Server-Anwendung?

VG,
Mad
 
  • Gefällt mir
Reaktionen: I'm unknown
Zurück
Oben