Einzelnen Beitrag anzeigen

Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#9

Re: Perfekt Simulator Next

  Alt 14. Mär 2007, 16:22
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
--
Angehängte Dateien
Dateityp: zip perfectsimulatormodified_115.zip (251,2 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat