🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fras.text.programmieren
Article #95

Re: Tastaturabfrage

#95
From: Joerg Holle
Date: Wed, 27 Mar 1996 12:04
73 lines
3522 bytes
>>Hallo, Kenner des AmigaOS!

>>Da ich fuer mich so etwas aehnliches wie den `ToolManager`
>>programmieren moechte, braeuchte ich dazu noch ein paar
>>Informationen. Damit das Starten von Programmen ueber eine gewisse
>>Taste oder Tastaturabkuerzung funktioniert, muss das Programm doch
>>alle Tastatureingaben abfangen, oder? Also muesste ich dazu einen
>>Input-Handler schreiben, der sich auf oberster Ebene in das System
>>einklingt. Leider habe ich keine Ahnung, wie man so etwas macht...

>> Kann mir jemand von Euch da etwas weiterhelfen??

>RKRM Libraries 3rd Ed. p.727-753.

>Wenn Du die RKRMs nicht hast, vergiss Dein Vorhaben am besten gleich
>wieder.

>	mfG,	Lars
>-- 
>Lars Dannenberg, Lange Str. 11, D-30952 Ronnenberg

[persoenliche Bemerkung ON]
Was sollte denn dieser 'hilfreiche' Kommentar ? Ein weiteres
Posting, um die manchmal in dieser NewsGroup herrschende Arroganz 
mancher 'Kenner des AmigaOS' zu plegen, oder was ?
[persoenliche Bemerkung OFF]

So schwer ist es jetzt auch nicht, einen Inputhandler zu schreiben, der
Tastatureingaben abfaengt, auch _ohne_ das RKRM zu besitzen.

Eine gewisses Wissen um bestimmte Strukturen muss man allerdings schon
haben, dafuer gibt es aber auch andere Quellen, wie das (leider,
manchmal recht fehlerhafte) 'InternII' oder einfach nur die
entsprechenden C-/Assembler-Includes.

Wenn Du allerdings noch nie von Devices gehoert hast oder wie man eines
benutzt, dann wird's schon etwas schwierig ...

Naja, hier jedenfalls eine grobe Vorgehensweise:

- InputDevice oeffnen (incl. MessagePort vorher einrichten,
  StdIOReq-Struct einrichten, das uebliche eben, um ein Device zu
  oeffnen ...)
- InputHandler-Struktur initialisieren (eigentlich nur eine
  InterruptHandler-Struktur -> s. dort; Prioritaet am Besten ueber dem
  des System-InputHandlers in Deinem Fall)
- InputDevice mit Kommando IND_ADDHANDLER aufrufen (DoIO()) und so den
  InputHandler aktivieren
- dieser Handler bekommt jetzt im Register a0 eine InputEvent-Struktur
  uebergeben; diese ist nach Wunsch abzufragen (RAWKEY oder nicht ?)
- Rueckgabewert: d0=InputEvent/NULL => weitere Handler
  zulassen/ignorieren (fuer Deine Zwecke also wohl NULL)
[ Zu den letzten 2 Punkten: Wie das in C funktioniert, weiss ich leider
nicht ... weitere Hilfen dazu (auch von mir) erwuenscht]
- Aufraeumen am Ende entsprechend (Entfernen des Handlers mit Kommando
  IND_REMHANDLER und dann analog weiter etc.)

Ich hoffe, dass das etwas weitergeholfen hat.

Tschuess
Joerg

 ----------------------------------------------
| Joerg Holle        |   'Anger is an energy'  |
| holle@ira.uka.de   |       (John Lydon)      |
 ----------------------------------------------

-- 
 ----------------------------------------------
|                    |                         |
| Joerg Holle        |   'Anger is an energy'  |
| holle@ira.uka.de   |       (John Lydon)      |
Technical Details
Message-ID: <4jbat3$m4e@nz12.rz.uni-karlsruhe.de>
Path: arc1-ca.pugleaf.net!rz.uni-karlsruhe.de!holle
References: <xVp8MMD356aez2@p-zimmer.ame.osn.de> <DowCyD.2tn@vendetta.han.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!rz.uni-karlsruhe.de!holle
From: holle@ira.uka.de (Joerg Holle)
Newsgroups: fras.text.programmieren,z-netz.rechner.amiga.programmieren
Subject: Re: Tastaturabfrage
Date: 27 Mar 1996 12:04:51 GMT
Organization: University of Karlsruhe, Germany
Message-ID: <4jbat3$m4e@nz12.rz.uni-karlsruhe.de>
References: <xVp8MMD356aez2@p-zimmer.ame.osn.de> <DowCyD.2tn@vendetta.han.de>
NNTP-Posting-Host: i10s17.ira.uka.de
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-newsreader: xrn 7.03
Originator: holle@i10s17