Hallo,
ich nutze ein Programm, in welchem ich einen wiederkehrende Ablauf habe.
(
in einem Dropdownmenü schalte ich einen Kanal weiter
es folgt eine Berechnung
im Anschluss muss manuell eine Datei gespeichert werden
und das gleiche von vorn
)
Da dabei zum Teil 50 Kanäle vorhanden sind, würde ich das gerne automatisieren.
Zum Programm habe ich quasi keine Informationen (wie es erstellt wurde).
Ich würde gerne mit Matlab eine Schleife bauen, was mir das klicken…warten…klicken…warten in ein nur warten umwandelt.
Die Frage ist, ob es prinzipiell geht?
Eine darausfolgende Frage ist, wie ich hier ansetze. Der Bedienung mit Matlab ist sehr erwünscht und quasi zwingend.
Gruß Suser.
Einfacher wäre es, wenn das Programm, das du hast, auch über Kommandozeile bedienbar wäre. dann bräuchte man von Matlab aus nur ein paar Befehle mit system(‚command‘) ausführen.
Ich würde gerne mit Matlab eine Schleife bauen, was mir das
klicken…warten…klicken…warten in ein nur warten umwandelt.
Die Frage ist, ob es prinzipiell geht?
prinzipiell geht alles.
Eine darausfolgende Frage ist, wie ich hier ansetze.
wenn sich das programm auch über tasten steuern läßt, wäre „sendkeys“ evtl. eine alternative.
kleines beispiel für matlab (ist nicht von mir, sondern von da: http://www.mathworks.de/support/solutions/en/data/1-…):
h = actxserver(‚WScript.Shell‘);
h.Run(‚notepad‘); %Invokes notepad.exe
pause(3); %Waits for the application to load.
h.AppActivate(‚Notepad‘); %Brings notepad to focus
h.SendKeys(‚hello world~‘); %Sends keystrokes
h.SendKeys(’^s’); % save file
pause(3);
h.SendKeys(‚test.txt~‘); % save as ‚test.txt‘ and return
h.SendKeys(’%{F4}’); % close Notepad Alt+F4
der Ansatz klingt interessant. Erste Versuche scheiterten,
kann ich mir vorstellen. es ist mitunter ein bißchen knifflig, gerade wenn’s um tastenkombinationen geht. evtl. muß man hier und da ein delay einbauen…
aber wenn’s prinzipiell schon mal funktioniert, kriegst du’s am ende auch hin.
Danke Michael
Der Ansatz funktioniert mittlerweile für das gegebene Problem gut. Es ist zwar ein wenig frimmelig, aber mit Hilfe von Verzögerungen zielführend. Somit ist es an dieser Stelle „nur“ noch eine Pfleißaufgabe (Abfragen müssen abgefangen werden; was ändert sich alles beim Schleifendurchlauf…).
Gruß Suser.
PS.: Danke natürlich auch an andere Antworten. An weiteren Lösungsansätzen bin ich weiterhin interssiert.
Der Ansatz funktioniert mittlerweile für das gegebene Problem
gut.
na das ist doch was
An weiteren
Lösungsansätzen bin ich weiterhin interssiert.
für andere ansätze (z.b. das mit der kommandozeile, was sicherer und komfortabler wäre) müßte man mehr über das programm wissen.
so ganz ohne doku wirst du dich mit der sendkeys-methode begnügen müssen.
um was für „kanäle“ handelt es sich denn? wird hier eine meßkarte angesteuert? evtl. gibt’s zu dieser mehr dokumentation.
oder ist das alles so geheim, daß du’s hier nicht offenbaren darfst?
Nix spektakuläres
Die Ergebnisskanäle einer Berechnung/Messung liegen alle in einer Datei. Eine oder mehrere Dateien lade ich vorher rein + Voreinstellung.
Hier beginnt der automatisierte Weg:
In dem Programm wähle ich nun von zwei oder mehr Dateien die zugehörigen Kanäle über ein Dropmenü. Kanal 1 von Datei 1 - x brauche ich zusammen (x bekannt). Es folgt eine Rechnung mit Ergebnisfile. Danach das gleiche mit nächsten Kanal.
Ich habe es jetzt schon recht weit geschafft(2 Kanäle hintereinander hat funktioniert). Ich muss nur noch testen inwieweit das funktioniert, wenn das automatische Computer sperren einsetzt. Da der Rechner während der Schleifen nicht benutzbar ist, könnte hier ein Prob auftreten.
Bei „Computer sperren“ und ich glaube auch schon beim Einsetzen des Bildschirmschoners versagt bei mr diese Methode. An diese Einstellungen komme ich zwecks mangelnder Adminrechte nicht heran. Ansonsten funktionert es soweit.