hi jens,
>Das gleichzeitige berechnen der Schleife und das
>Abfragen der
>Tastatur erfordert nämlich eine parallele Ausführung zweier Aufgaben
das ist leider so nicht korrekt, denn innerhalb der schleife muss lediglich der scancode einer taste abgefragt werden,
dafür bemüht man in z.b. windows das api für den scancode (über .NET/Link) einer taste das geschieht ganz streng
sequentiell während des api calls steht der mma prozess und wartet auf die beendigung des calls. mit beendigung des
calls springt die programmausführung zurück in den mma prozess und dann erst wird dieser fortgesetzt.
wäre ich jetzt spitzfindisch würde ich behaupten das auf einem single prozessor rechner überhaupt keine aplikationen
wirklich parallel ablaufen können.
über mathlink C/C++ wäre die ganze sache leider auch nicht portabler da es keine standard ansi C funktion zur abfrage
des scancodes gibt weder für unix noch für windows. möglicherweise gelänge es eine auf unix/linux beschränkte portable
version zu erstellen. für die windows welt ist das .NET/Link interface für simple api calls wesentlich einfacher
anzusprechen als über mathlink. unix/linux müssen über mathlink gehen.
l.g. robert
----- Original Message -----
From: "Nowak Robert" <robert.nowak@XXXXXXX.at>
To: "Jens-Peer Kuska"
<kuska@XXXXXXX.de>; "Wieser Johann"
<aon.912862196@XXXXXXX.at>; <demug@XXXXXXX.ch>
Sent: Tuesday, May 24, 2005 9:59 AM
Subject: RE: In laufende Scleife interaktiv
eingreifen
> Hi Jens,
>
> muss dir leider schon wieder widersprechen.
> mit hilfe der .NET/Link 3.5.0 schnittstelle ist
> es möglich unter mma windows dll's zu rufen.
>
> im mma help wird das beispielhaft für die
> windows api funktion GetTickCount gezeigt.
>
> getTickCount = DefineDLLFunction["GetTickCount",
> "kernel32.dll", "int", {}]
>
> in windows gibt es auch eine api funktion zur
> abfrage des tastatutscancodes damit kann man
> abfragen ob z.b. überhaupt eine tastet gedrückt
> ist und wenn eine gedrückt ist dann welche, ohne
> das man ein zeichen von der tatstatur wirklich
> einlesen muss.
>
> wie diese windows api funktion jetzt genau heist
> muss man sich im windows api noch schlau machen.
> man braucht dafür jedenfalls keinerlei c
> programmierung oder ähnliches.
>
> l.g. robert
>
> -----Original Message-----
> From: Jens-Peer Kuska
> [mailto:kuska@XXXXXXX.de]
> Sent: Monday, May 23, 2005 10:09 PM
> To: Wieser Johann; demug@XXXXXXX.ch
> Subject: Re: In laufende Scleife interaktiv
> eingreifen
>
>
> Hallo,
>
> nein, weil entweder Mathematica ließt aus einer
> Datenquelle
> oder es wartet darauf, das es etwas lesen kann.
> Input[] wird in einer unendliche Schleife wohl
> etwas nervig
> sein oder wie ist
> i = 0;
> While[True,
> Print[i++];
> c = Input["continue ?"];
> If[c === no, Break[]]
> ]
>
> Gruß
>
> Jens
>
> ----- Original Message -----
> From: "Wieser Johann" <aon.912862196@XXXXXXX.at>
> To: <demug@XXXXXXX.ch>
> Sent: Monday, May 23, 2005 8:45 PM
> Subject: In laufende Scleife interaktiv
> eingreifen
>
>
>> Guten Tag!
>>
>> Mein Problem!
>> In erstelle ein kleines Programm, das mir durch
>> eine (unendliche) Schleife
>> eine Folge von Grafiken ausgibt. Ich möchte es
>> aber während der Ausgabe
>> steuern können, indem eine Tastaturabfrage
>> eingebaut werden soll, die, je
>> nach Tastenabfrage entsprechendes bewirken
>> soll.
>> (z.B auch Abbruch der
>> Schleife. Mit Alt+. ist das nur bedingt
>> möglich.
>> Manchmal wird zwar
>> ausgestiegen, bei der nächsten Ausführung
>> bleibt
>> dann das Programm hängen
>> oder andere Probleme treten auf).
>> Kurz gefragt:
>> Gibt es einen Befehl, der eine Tastaturabfrage
>> durchführt und das Programm
>> dann sofort in die gewünschte "Richtung" lenkt?
>>
>>
>>
>
>
>
>
>