Aaaaaaaalso,
nachdem mein
Problem nicht gelöst werden konnte, musste ich nach einem anderen Weg suchen und entdeckte
Perfect Simulator Next.
Ich wollte die Texteingaben an die Konsole schicken. Nur gab es folgendes Problem:

Zitat von
kingflo:
Sondertasten wie -Enter- -Back- usw werden zwar geloggt, können jedoch noch nicht ausgeführt werden
Das geht jetzt. Ein Strichpunkt unter dem Editfeld
Tastendrücke simulieren simuliert nun ein Return. Nur ist das Ganze witzlos, wenn man den Fokus vom Button
sofort ausführen bzw.
Start nicht ablenken kann, da der Fokus unmittelbar nachdem Druck auf einem der Buttons liegt und dazu führt, dass ein Return-Druck zu einer Endlos-Schleife führt.
Also hab' ich unter dem Tab
Ausführen drei Editfelder (
Fenstertitel,
Prozess-Name und
Exe-Datei (Pfad+Name)) und eine Checkbox (
Fokus manuell wechseln) eingeführt.
Dies versuch' ich mal mit meinen überaus unterdurchschnittlichen Windows-
API-Kenntnissen anhand eines Beispiels zu erläutern:
Im Anhang befindet sich eine Test-Konsolenanwendung, die nur aus folgendem Code besteht:
Delphi-Quellcode:
program Console;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows;
var
str: string;
begin
SetConsoleTitle(PChar('Console'));
repeat
write('>> '); readln(str);
until str = 'exit';
end.
An diese Konsole, die im Anhang zu finden ist wollen wir ein Script senden:
Zitat:
format world wide web
solve global warming
find theory of everything
Zunächst tippen wir das unter
Tastendrücke simulieren ein und trennen die einzelnen Befehle mit einem Strichpunkt (dies repräsentiert die Return-Taste) und fügen diese zum Script hinzu:
Zitat:
format world wide web;
solve global warming;
find theory of everything;
oder auch auf einen Schlag:
Zitat:
format world wide web; solve global warming; find theory of everything;
Nun wechseln wir zum Tab
Ausführen und geben in das Editfeld
Fenstertitel Console ein.
In das Editfeld
Prozess-Name geben wir den Namen des Prozesses ein. Bei uns
Console.exe.
Jetzt entfernen wir noch das Häkchen an der Checkbox
Fokus manuell wechseln, denn das soll ja vollautomatisch geschehen.
Wenn wir jetzt auf
Start oder
sofort ausführen drücken prüft eine Prozedur ob der Prozess "Console.exe" läuft. Ist dies der Fall wird das Script an die Konsole übergeben. Wenn nicht öffnet sich ein Dialog mit dem man zu Console.exe browsen kann. Diese wird anschließend geöffnet und das Script wird übergeben.
So funktioniert das Ganze.
Für meine eigene Konsolen-Anwendungen werde ich eine eigene
GUI erstellen und habe hier nur das Prinzip erklärt, falls es jemand mal brauchen kann.
Perfect Simulator ist vom Prinzip meiner Meinung nach äußerst nützlich. Über die Umsetzung lässt sich streiten.
Achja, die Registry-Settings habe ich aus dem Programm entfernt, da man diese hier wirklich nicht braucht.
Was geht nicht und was macht Probleme?
(1) Wenn geprüft wird, ob eine Anwendung läuft und sie muss erst geöffnet werden, kann es u.U. länger dauern bis die Anwendung geöffnet wurde (ich sag' nur alles von und mit Java

); solange kann kein Text an die Anwendung geschickt werden; momentan wird das so gelöst, dass nach dem ShellExecute-Befehl noch 2 Sekunden gewartet wird, was für unsere "Console.exe" vollkommen ausreicht; für MATLAB allerdings bezweifle ich das;
da waren noch weitere Punkte, die mir grad nicht einfallen; werde diese hier einfügen sobald sie mir wieder einfallen...
Gruß
Calulon
--