force Geschrieben 6. April 2005 Teilen Geschrieben 6. April 2005 Hallo habe gleich zu beginn eine FÜR MICH schwierige Frage. Es geht darum das ich ein Webinterface erstellt habe mit dem ich per Browser lokale Programme auf dem Server starten kann. Nun möchte ich aber auch im Browser sehen können ob der Prozess zum Programm läuft und dann z.B. eine Grafik grün oder rot anzeigen zu lassen. Weitere Infos: Das ganze ist in php geschrieben. Durch den Browser kann ich mit Hilfe von php batch dateien ausführend die mir das programm starten. Betriebsystem Windows Server 2003 Webserver Apache 2 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SNOWMAN Geschrieben 6. April 2005 Teilen Geschrieben 6. April 2005 öh ja, klar... *kratzt sich am Kinn* ja, so kanns gehn: Also wie du PHP mit Batch verbinden kannst weiß ich leider nix von aber du kannst mit nem batchskript überprüfen welche tasks laufen (vllt. gibts sowas uach in php, weiß ich leider nich) und zwar so: tasklist das wars, mit "tasklist -?" siehst du die hilfe davon. Beispiel: tasklist /FI "IMAGENAME eq outlook*" Bringt dir das OUTLOOK.EXE noch läuft. Hmmm.... und da ich grad 0 plan hab wie du das in direkt in php verarbeiten kannst hätte ich das wie folgt gelöst, wenn du was besseres weißt sag mir bitte bescheid;) Ich biege die Ausgabe von tasklist in eine Datei um. Diese Datei öffne ich in PHP und lese sie aus. Per RegEx würde ich nach meinem gesuchten Task die Datei durchsuchen und wenn ich was gefunden habe mir ne 1 zurückgeben, sonst ne 0. ja, so würd ich das wohl machen, etwas kompliziert, aber das beste was ich wüsste Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 6. April 2005 Teilen Geschrieben 6. April 2005 http://de.php.net/manual/en/function.system.php bzw http://de.php.net/manual/en/function.exec.php sind deine Freunde,... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
force Geschrieben 6. April 2005 Autor Teilen Geschrieben 6. April 2005 leider sind die beiden eben nicht meine freunde. wenn ich beide benutze gibt es ein problem beim ausführen. Die Batch datei muss nämlich den ganzen process über geöffnet bleiben sonst schließt sich das programm wieder. und wenn ich es nun mit einen der beiden tu dann gibt es folgendes zu bemängeln. 1. ich drücke auf den startbutton im browser 2. dann startet er zwar den prozess 3. aber das browser fenster wird nie geschlossen(das bedeuet es lädt die ganze zeit so lange bis der prozess beendet wird) ich bin mir aber nicht mehr sicher was ich benutze ich vermute popen() mit dem funzt es auch wenn ich athome bin schaue ich nochmal!! aber trotzdem thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 6. April 2005 Teilen Geschrieben 6. April 2005 wenn du alle ausgaben des systemprogrammes oder -batch innerhalb des aufrufes von system mit > oder >> umleitest, dann entsteht kein rückgabetext, der ausgabepuffer von php bleibt leer und php sollte auch nicht hängenbleiben. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 6. April 2005 Teilen Geschrieben 6. April 2005 ich glaube das dein batch script ein "return true" o.ä. enthalten sollte,.. hab aber keine Ahnung wie man in batch einen positiven rückgabewert formuliert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
force Geschrieben 6. April 2005 Autor Teilen Geschrieben 6. April 2005 wie gesagt genaueres liefere ich wenn ich zu hause bin. aber eben kein return. ich muss im batch pause setzten sonnst gibt es den prozess nach 2 sekunden nicht mehr weil er geschlossen wird. werde mich dann mal an die arbeit machen thx an alle Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
force Geschrieben 6. April 2005 Autor Teilen Geschrieben 6. April 2005 also hier mal ein paar ausschnitte. so habe ich das nun mal realisiert $p=exec("[verzeichnis]\pslist.exe [prozess]"); funktioniert schon mal gut. damit erhalte ich eben den prozess mit den daten. doch nun fehlt mir noch eine abfrage !!! if($p == "[match]") { echo "[ausgabe zum testen später dann ausgabe eines bildes]"; }; beim leztem habe ich ein prob mit der vergleich. wie kann ich wildcards benutzen also * oder so. Denn durch $p erhalte ich viele informationen im format Name PID PRI THD HND PRIV TIME USW. so wie kann ich nun das vergleichen in der if if($p == "[match]") Der vergleicht ja nur den exaten Wert, da wo match steht müsste noch ein *hin damit er das sauber erkennt. Oder hat jemand eine adnere idee Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 6. April 2005 Teilen Geschrieben 6. April 2005 Das bekommste mit regEx... http://de2.php.net/manual/en/function.preg-match.php Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
force Geschrieben 7. April 2005 Autor Teilen Geschrieben 7. April 2005 Also gut habe es mit Hilfe von SNOWMAN geschaft!!! BIG THX AN SNOWMAN :uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.