|
|
Externe exe-Datei in Matlab starten und überwachen |
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.05.2011, 16:56
Titel: Externe exe-Datei in Matlab starten und überwachen
|
 |
Hallo,
ich würde gerne eine externe exe-Datei aus einem m-File starten. Hierzu soll sich eine Öffnen-Dialogbox öffnen, bei welcher ich die exe auswählen kann.
Anschließend soll das Programm so lange warten, bis die exe geöffnet ist. Das ganze sollte allerdings mittels einer Abfrage nur dann ausgeführt werden, wenn die exe nicht sowieso schon läuft.
Am Ende des m-Files soll die exe dann wieder geschlossen werden.
Ich habe mich mal mit den Befehlen uigetfile, winopen und dos versucht, habe aber die richtige Implementierung bisher nicht geschafft.
Ich wäre um Hilfe sehr dankbar
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.05.2011, 23:29
Titel: Re: Externe exe-Datei in Matlab starten und überwachen
|
 |
Hallo Gast,
Zitat: |
Anschließend soll das Programm so lange warten, bis die exe geöffnet ist. |
Welche Möglichkeiten gibt es denn um festzustellen, wann das externe Programm "geöffnet" ist? Könnte dazu das externe Programm eine bestimmte Datei erzeugen? Dies könnte man dann auch verwenden, um ein bereits laufendes Programm zu erkennen.
Allerdings die die Interprozess-Kommunikation per File recht mittelalterlich und nicht effizient.
WINOPEN bringt hier wohl nicht viel. Eine EXE startet man gut per SYSTEM Befehl.
Gruß, Jan
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.05.2011, 09:16
Titel:
|
 |
Hallo,
das externe Programm sollte soweit nicht angepasst werden müssen. Also fällt die Version mit dem anlegen einer Datei raus.
Es sollte doch sicher möglich sein, einen Prozess, also die exe, über den Taskmanager zu "beobachten". Hierzu hätte ich ja dann die Möglichkeit zu überprüfen, ob der Prozess schon läuft. Ebenfalls hierüber sollte es ja auch möglich sein, den Prozess zu beenden.
Gibt es etwas in der Richtung?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.05.2011, 12:38
Titel:
|
 |
|
 |
|
Hallo Gast,
Mit dem ferngesteuerten "killen" eines Prozesses kannst Du Dir eine Menge Ärger einhandlen. Das ist zwar möglich, wenn das externe Programm aber nicht darauf vorbereitet ist (also einen freundlichen Aufruf sich selbst zu beenden akzeotiert), kann das Programm Müll zurücklassen, z.B. hab geschriebene Datein, geöffnete Kommunikations-Kanäle, nicht-gelehrte Buffer, ...
Deswegen würde ich ein solchen Vorgehen auf jeden Fall vermeiden, wenn ein zuverlässig laufendes System wichtig ist.
Aber machen kann man das so:
Für einen Hilfetext siehe "!taskkill /?"
PSKILL aus der SysInternal-Suite könnte auch hilfreich sein, muss aber zuerst installiert werden.
Hier findest Du eine Möglichkeit die ProcessID zu eine laufenden EXE-File zu finden: http://www.cplusplus.com/forum/windows/12137/
Ich weise nochmal darauf hin, dass ich diese Art der Kommunikation für eine Holzhamme-Method halte: Wenn ein Holzhammer passt, passt er, wenn er nicht passt, mach er alles gründlich zu Schrott.
Gruß, Jan
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 11.05.2011, 12:47
Titel:
|
 |
Hallo,
Ich habe noch ein hilfreiches Tool gefunden:
Man bekommt dann allerdings eine Liste im Text-Format, die man erst mühsam übersetzen muss. Wenn dabei ein Fehler auftritt, schießt man vielleicht den falschen Prozess ab.
Gruß, Jan
|
|
|
morisq |

Forum-Century
|
 |
Beiträge: 140
|
 |
|
 |
Anmeldedatum: 24.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2010a
|
 |
|
|
 |
|
Verfasst am: 10.04.2013, 11:30
Titel:
|
 |
Hallo Jan,
gibt es eine Möglichkeit diese Liste in Form eines Arrays oder ähnlichem im Workspace zu speichern?
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.04.2013, 11:37
Titel:
|
 |
Hallo,
ein string wird erstellt, mit dem kann weitergearbeitet werden.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum 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. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|