DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

RE: In laufende Scleife interaktiv eingreifen

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?
>>
>>
>>
>
>
>
>
> 




Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html