Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

inc_KeyBoard.bi - Keystates ermitteln

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Weazle25



Anmeldungsdatum: 04.11.2007
Beiträge: 18
Wohnort: Stralsund (Mecklenburg-Vorpommern)

BeitragVerfasst am: 12.11.2007, 17:06    Titel: inc_KeyBoard.bi - Keystates ermitteln Antworten mit Zitat

Diese Lib entstand nach dem BlitzBasic-Tutorial Dinge mit Maus im Prog verschieben (Fenster, Bilder, ...)
Ich habe dann daraus ein paar Functionen gebastelt und es jetzt auch nach FB konvertiert.

Dabei sind mir folgende Probleme aufgefallen:

1. FB verwendet teilweise andere Scancodes als BlitzBasic
2. Auf meinem (schon etwas betagtem) PC erhalte ich bei den Tasten [-] (Bindestrich) und [NUM /] identische Scancodes.
3. (6er Block | Pfeil-Tasten) und die zugehörigen Tasten des Nummernblocks liefern ebenfalls identische Scancodes.
4. Weder mein PC noch mein Laptop besitzen Media-Tasten so das diese und einige andere Tasten ausgenullt werden mussten.

Ich möchte daher die Community bitten die Scancode-Konstanten zu überprüfen und zu korrigieren.

In der Lib ist zu diesem Zweck bereits ein Test-Programm enthalten.
( einfach in der letzten Zeile das Kommentar-Zeichen entfernen und kompilieren.)

Code:

'Die Zustände der Tasten
Const KB_Normal             =   0
Const KB_Hit                =   1
Const KB_Down               =   2
Const KB_Up                 =   3

'Zahlen
Const KB_Key_0              =  11
Const KB_Key_1              =   2
Const KB_Key_2              =   3
Const KB_Key_3              =   4
Const KB_Key_4              =   5
Const KB_Key_5              =   6
Const KB_Key_6              =   7
Const KB_Key_7              =   8
Const KB_Key_8              =   9
Const KB_Key_9              =  10

'Buchstaben
Const KB_Key_A              =  30
Const KB_Key_B              =  48
Const KB_Key_C              =  46
Const KB_Key_D              =  32
Const KB_Key_E              =  18
Const KB_Key_F              =  33
Const KB_Key_G              =  34
Const KB_Key_H              =  35
Const KB_Key_I              =  23
Const KB_Key_J              =  36
Const KB_Key_K              =  37
Const KB_Key_L              =  38
Const KB_Key_M              =  50
Const KB_Key_N              =  49
Const KB_Key_O              =  24
Const KB_Key_P              =  25
Const KB_Key_Q              =  16
Const KB_Key_R              =  19
Const KB_Key_S              =  31
Const KB_Key_T              =  20
Const KB_Key_U              =  22
Const KB_Key_V              =  47
Const KB_Key_W              =  17
Const KB_Key_X              =  45
Const KB_Key_Y              =  44
Const KB_Key_Z              =  21
Const KB_Key_AE             =  40   ' Ä
Const KB_Key_OE             =  39   ' Ö
Const KB_Key_UE             =  26   ' Ü
Const KB_Key_SZ             =  12   ' ß

'Funktionstasten
Const KB_Key_F1             =  59
Const KB_Key_F2             =  60
Const KB_Key_F3             =  61
Const KB_Key_F4             =  62
Const KB_Key_F5             =  63
Const KB_Key_F6             =  64
Const KB_Key_F7             =  65
Const KB_Key_F8             =  66
Const KB_Key_F9             =  67
Const KB_Key_F10            =  68
Const KB_Key_F11            =  87
Const KB_Key_F12            =  88

'Zahlenblock
Const KB_Key_Num0           =  82
Const KB_Key_Num1           =  79
Const KB_Key_Num2           =  80
Const KB_Key_Num3           =  81
Const KB_Key_Num4           =  75
Const KB_Key_Num5           =  76
Const KB_Key_Num6           =  77
Const KB_Key_Num7           =  71
Const KB_Key_Num8           =  72
Const KB_Key_Num9           =  73
Const KB_Key_NumDiv         =  53
Const KB_Key_NumMulti       =  55
Const KB_Key_NumSub         =  74
Const KB_Key_NumAdd         =  78
Const KB_Key_NumKomma       =  83
Const KB_Key_NumReturn      =  28
Const KB_Key_NumNumlock     =  69

'Cursorblock
Const KB_Key_ArrowUp        =  72
Const KB_Key_ArrowDown      =  80
Const KB_Key_ArrowLeft      =  75
Const KB_Key_ArrowRight     =  77

'6er Block
Const KB_Key_Insert         =  82
Const KB_Key_Delete         =  83
Const KB_Key_Pos1           =  71
Const KB_Key_End            =  79
Const KB_Key_PageUp         =  73
Const KB_Key_PageDown       =  81

'Steuertasten
Const KB_Key_ESC            =   1
Const KB_Key_Return         =  28
Const KB_Key_Space          =  57
Const KB_Key_Backspace      =  14
Const KB_Key_Tabulator      =  15
Const KB_Key_Roll           =  70
Const KB_Key_LShift         =  42
Const KB_Key_LCTRL          =  29
Const KB_Key_LAlt           =  56
Const KB_Key_RShift         =  54
Const KB_Key_RCTRL          =  29
Const KB_Key_RAlt           =  56
Const KB_Key_CapsLock       =  58
Const KB_Key_NumLock        =  69
Const KB_Key_Print          =  55
Const KB_Key_Break          =   0

'Sonderzeichen
Const KB_Key_Apostroph      =  13   ' ´ und `
Const KB_Key_Arrow          =  86   ' < und > und |
Const KB_Key_Komma          =  51   ' , und ;
Const KB_Key_Dot            =  52   ' . und :
Const KB_Key_Line           =  53   ' - und _
Const KB_Key_Rhomb          =  43   ' # und '
Const KB_Key_Angle          =  41   ' ^ und °
Const KB_Key_Add            =  27   ' + und * und ~

'Windowstasten
Const KB_Key_LWin           =  91
Const KB_Key_RWin           =  92
Const KB_Key_Calculator     =   0
Const KB_Key_Menu           =  93
Const KB_Key_Computer       =   0
Const KB_Key_Media          =   0

'Multimediatasten
Const KB_Key_MediaPlay      =   0
Const KB_Key_MediaStop      =   0
Const KB_Key_MediaNext      =   0
Const KB_Key_MediaMute      =   0
Const KB_Key_MediaVolRemove =   0
Const KB_Key_MediaVolAdd    =   0

'Internettasten
Const KB_Key_NetHome        =   0
Const KB_Key_NetSearch      =   0
Const KB_Key_NetFavourite   =   0
Const KB_Key_NetUpdate      =   0
Const KB_Key_NetStop        =   0
Const KB_Key_NetNext        =   0
Const KB_Key_NetBack        =   0
Const KB_Key_NetEMail       =   0

'Systemtasten
Const KB_Key_Power          =   0
Const KB_Key_Sleep          =   0
Const KB_Key_Wake           =   0

'Tastengruppen
Const KB_UnbekannteTaste    =  -1
Const KB_Zahl               =   0
Const KB_Buchstabe          =   1
Const KB_Functionstaste     =   2
Const KB_Zahlenblock        =   3
Const KB_Cursorblock        =   4
Const KB_6erBlock           =   5
Const KB_Steuertaste        =   6
Const KB_Sonderzeichen      =   7
Const KB_Windowstaste       =   8
Const KB_Multimediataste    =   9
Const KB_Internettaste      =  10
Const KB_Systemtaste        =  11

Dim Shared As byte KB_Key( 0 To 255 )

'=========================================================================

Function KB_GetKeyType( ByVal Taste As ubyte ) As Byte
    Select Case Taste
        'Zahlen
        Case KB_Key_0, KB_Key_1, KB_Key_2, KB_Key_3, KB_Key_4, KB_Key_5, KB_Key_6, KB_Key_7, KB_Key_8, KB_Key_9
            Return KB_Zahl
            'Buchstaben
        Case KB_Key_A, KB_Key_B, KB_Key_C, KB_Key_D, KB_Key_E, KB_Key_F, KB_Key_G, KB_Key_H, KB_Key_I, KB_Key_J, KB_Key_K, KB_Key_L, KB_Key_M, KB_Key_N, KB_Key_O, KB_Key_P, KB_Key_Q, KB_Key_R, KB_Key_S, KB_Key_T, KB_Key_U, KB_Key_V, KB_Key_W, KB_Key_X, KB_Key_Y, KB_Key_Z, KB_Key_AE, KB_Key_OE, KB_Key_UE, KB_Key_SZ
            Return KB_Buchstabe
            'Funktionstasten
        Case KB_Key_F1, KB_Key_F2, KB_Key_F3, KB_Key_F4, KB_Key_F5, KB_Key_F6, KB_Key_F7, KB_Key_F8, KB_Key_F9, KB_Key_F10, KB_Key_F11, KB_Key_F12
            Return KB_Functionstaste
            'Zahlenblock
        Case KB_Key_Num0, KB_Key_Num1, KB_Key_Num2, KB_Key_Num3, KB_Key_Num4, KB_Key_Num5, KB_Key_Num6, KB_Key_Num7, KB_Key_Num8, KB_Key_Num9, KB_Key_NumDiv, KB_Key_NumMulti, KB_Key_NumSub, KB_Key_NumAdd, KB_Key_NumKomma, KB_Key_NumReturn, KB_Key_NumNumlock
            Return KB_Zahlenblock
            'Cursorblock
        Case KB_Key_ArrowUp, KB_Key_ArrowDown, KB_Key_ArrowLeft, KB_Key_ArrowRight
            Return KB_Cursorblock
            '6er Block
        Case KB_Key_Insert, KB_Key_Delete, KB_Key_Pos1, KB_Key_End, KB_Key_PageUp, KB_Key_PageDown
            Return KB_6erBlock
            'Steuertasten
        Case KB_Key_ESC, KB_Key_Return, KB_Key_Space, KB_Key_Backspace, KB_Key_Tabulator, KB_Key_Roll, KB_Key_LShift, KB_Key_LCTRL, KB_Key_LAlt, KB_Key_RShift, KB_Key_RCTRL, KB_Key_RAlt, KB_Key_CapsLock, KB_Key_NumLock, KB_Key_Print, KB_Key_Break
            Return KB_Steuertaste
            'Sonderzeichen
        Case KB_Key_Arrow, KB_Key_Komma, KB_Key_Dot, KB_Key_Line, KB_Key_Rhomb, KB_Key_Angle, KB_Key_Add
            Return KB_Sonderzeichen
            'Windowstasten
        Case KB_Key_LWin, KB_Key_RWin, KB_Key_Calculator, KB_Key_Menu, KB_Key_Computer, KB_Key_Media
            Return KB_Windowstaste
            'Multimediatasten
        Case KB_Key_MediaPlay, KB_Key_MediaStop, KB_Key_MediaNext, KB_Key_MediaMute, KB_Key_MediaVolRemove, KB_Key_MediaVolAdd
            Return KB_Multimediataste
            'Internettasten
        Case KB_Key_NetHome, KB_Key_NetSearch, KB_Key_NetFavourite, KB_Key_NetUpdate, KB_Key_NetStop, KB_Key_NetNext, KB_Key_NetBack, KB_Key_NetEMail
            Return KB_Internettaste
            'Systemtasten
        Case KB_Key_Power, KB_Key_Sleep, KB_Key_Wake
            Return KB_Systemtaste
            'unbekannte Taste
        Case Else
            Return KB_UnbekannteTaste
    End Select
End Function

Function KB_GetKeyTypString( ByVal Taste As UByte ) As String
    Select Case KB_GetKeyType( Taste )
        Case KB_UnbekannteTaste
            Return "Unbekannte Taste"
        Case KB_Zahl
            Return "Zahl"
        Case KB_Buchstabe
            Return "Buchstabe"
        Case KB_Functionstaste
            Return "Functionstaste"
        Case KB_Zahlenblock
            Return "Zahlenblock"
        Case KB_Cursorblock
            Return "Cursorblock"
        Case KB_6erBlock
            Return "6er Block"
        Case KB_Steuertaste
            Return "Steuertaste"
        Case KB_Sonderzeichen
            Return "Sonderzeichen"
        Case KB_Windowstaste
            Return "Windowstaste"
        Case KB_Multimediataste
            Return "Multimediataste"
        Case KB_Internettaste
            Return "Internettaste"
        Case KB_Systemtaste
            Return "Systemtaste"
    End Select
End Function

'=========================================================================

Function KB_GetKeyName( ByVal Taste As ubyte ) As string
    Select Case Taste
       
       
        'Zahlen
        Case KB_Key_0
            Return "0 = }"
        Case KB_Key_1
            Return "1 !"
        Case KB_Key_2
            Return "2 " & Chr(34) & " ²"
        Case KB_Key_3
            Return "3 § ³"
        Case KB_Key_4
            Return "4 $"
        Case KB_Key_5
            Return "5 %"
        Case KB_Key_6
            Return "6 &"
        Case KB_Key_7
            Return "7 / {"
        Case KB_Key_8
            Return "8 ( ["
        Case KB_Key_9
            Return "9 ) ]"
           
           
            'Buchstaben
        Case KB_Key_A
            Return "A"
        Case KB_Key_B
            Return "B"
        Case KB_Key_C
            Return "C"
        Case KB_Key_D
            Return "D"
        Case KB_Key_E
            Return "E €"
        Case KB_Key_F
            Return "F"
        Case KB_Key_G
            Return "G"
        Case KB_Key_H
            Return "H"
        Case KB_Key_I
            Return "I"
        Case KB_Key_J
            Return "J"
        Case KB_Key_K
            Return "K"
        Case KB_Key_L
            Return "L"
        Case KB_Key_M
            Return "M µ"
        Case KB_Key_N
            Return "N"
        Case KB_Key_O
            Return "O"
        Case KB_Key_P
            Return "P"
        Case KB_Key_Q
            Return "Q @"
        Case KB_Key_R
            Return "R"
        Case KB_Key_S
            Return "S"
        Case KB_Key_T
            Return "T"
        Case KB_Key_U
            Return "U"
        Case KB_Key_V
            Return "V"
        Case KB_Key_W
            Return "W"
        Case KB_Key_X
            Return "X"
        Case KB_Key_Y
            Return "Y"
        Case KB_Key_Z
            Return "Z"
        Case KB_Key_AE
            Return "Ä (AE)"
        Case KB_Key_OE
            Return "Ö (OE)"
        Case KB_Key_UE
            Return "Ü (UE)"
        Case KB_Key_SZ
            Return "ß (SZ) ? \"
           
           
            'Funktionstasten
        Case KB_Key_F1
            Return "F1"
        Case KB_Key_F2
            Return "F2"
        Case KB_Key_F3
            Return "F3"
        Case KB_Key_F4
            Return "F4"
        Case KB_Key_F5
            Return "F5"
        Case KB_Key_F6
            Return "F6"
        Case KB_Key_F7
            Return "F7"
        Case KB_Key_F8
            Return "F8"
        Case KB_Key_F9
            Return "F9"
        Case KB_Key_F10
            Return "F10"
        Case KB_Key_F11
            Return "F11"
        Case KB_Key_F12
            Return "F12"
           
           
            'Zahlenblock
        Case KB_Key_Num0
            Return "NUM 0"
        Case KB_Key_Num1
            Return "NUM 1"
        Case KB_Key_Num2
            Return "NUM 2"
        Case KB_Key_Num3
            Return "NUM 3"
        Case KB_Key_Num4
            Return "NUM 4"
        Case KB_Key_Num5
            Return "NUM 5"
        Case KB_Key_Num6
            Return "NUM 6"
        Case KB_Key_Num7
            Return "NUM 7"
        Case KB_Key_Num8
            Return "NUM 8"
        Case KB_Key_Num9
            Return "NUM 9"
        Case KB_Key_NumDiv
            Return "NUM /"
        Case KB_Key_NumMulti
            Return "NUM *"
        Case KB_Key_NumSub
            Return "NUM -"
        Case KB_Key_NumAdd
            Return "NUM +"
        Case KB_Key_NumKomma
            Return "NUM ,"
        Case KB_Key_NumReturn
            Return "NUM Enter"
        Case KB_Key_NumNumlock
            Return "NUM"
           
           
            'Cursorblock
        Case KB_Key_ArrowUp
            Return "Pfeil rauf"
        Case KB_Key_ArrowDown
            Return "Pfeil runter"
        Case KB_Key_ArrowLeft
            Return "Pfeil links"
        Case KB_Key_ArrowRight
            Return "Pfeil rechts"
           
           
            '6er Block
        Case KB_Key_Insert
            Return "Einfügen"
        Case KB_Key_Delete
            Return "Entfernen"
        Case KB_Key_Pos1
            Return "Pos1"
        Case KB_Key_End
            Return "Ende"
        Case KB_Key_PageUp
            Return "Bild rauf"
        Case KB_Key_PageDown
            Return "Bild runter"
           
           
            'Steuertasten
        Case KB_Key_ESC
            Return "ESC"
        Case KB_Key_Return
            Return "Enter"
        Case KB_Key_Space
            Return "Leertaste"
        Case KB_Key_Backspace
            Return "Rückgängig"
        Case KB_Key_Tabulator
            Return "Tabulator"
        Case KB_Key_Roll
            Return "Rollen"
        Case KB_Key_LShift
            Return "Linke Umschalt."
        Case KB_Key_LCTRL
            Return "Linke Strg"
        Case KB_Key_LAlt
            Return "Linke Alt"
        Case KB_Key_RShift
            Return "Rechte Umschalt"
        Case KB_Key_RCTRL
            Return "Rechte Strg"
        Case KB_Key_RAlt
            Return "Rechte Alt"
        Case KB_Key_CapsLock
            Return "Feststellt."
        Case KB_Key_NumLock
            Return "NUM"
        Case KB_Key_Print
            Return "Drucken"
        Case KB_Key_Break
            Return "Pause"
           
           
            'Sonderzeichen
        Case KB_Key_Arrow
            Return "< > |"
        Case KB_Key_Komma
            Return ", ;"
        Case KB_Key_Dot
            Return ". :"
        Case KB_Key_Line
            Return "- _"
        Case KB_Key_Rhomb
            Return "# '"
        Case KB_Key_Angle
            Return "^ °"
        Case KB_Key_Add
            Return "+ * ~"
           
           
            'Windowstasten
        Case KB_Key_LWin
            Return "Linke Windowst."
        Case KB_Key_RWin
            Return "Rechte Windowst."
        Case KB_Key_Calculator
            Return "Taschenrechner"
        Case KB_Key_Menu
            Return "Menü"
        Case KB_Key_Computer
            Return "Computer"
        Case KB_Key_Media
            Return "Media"
           
           
            'Multimediatasten
        Case KB_Key_MediaPlay
            Return "Abspielen"
        Case KB_Key_MediaStop
            Return "Stop"
        Case KB_Key_MediaNext
            Return "Nächster Titel"
        Case KB_Key_MediaMute
            Return "Stumm"
        Case KB_Key_MediaVolRemove
            Return "Lauter"
        Case KB_Key_MediaVolAdd
            Return "Leiser"
           
           
            'Internettasten
        Case KB_Key_NetHome
            Return "Home"
        Case KB_Key_NetSearch
            Return "Suche"
        Case KB_Key_NetFavourite
            Return "Favouriten"
        Case KB_Key_NetUpdate
            Return "Aktualisieren"
        Case KB_Key_NetStop
            Return "Stop"
        Case KB_Key_NetNext
            Return "Vorwärts"
        Case KB_Key_NetBack
            Return "Zurück"
        Case KB_Key_NetEMail
            Return "E-Mail"
           
           
            'Systemtasten
        Case KB_Key_Power
            Return "Power"
        Case KB_Key_Sleep
            Return "Sleep"
        Case KB_Key_Wake
            Return "Wake"
           
           
            'unbekannte Taste
        Case else
            Return "Unbekannte Taste"
    End Select
End Function

'=========================================================================

Function KB_KeyUpdate() As UByte
    For i As UShort = 0 To 255
        If KB_Key(i) = KB_Normal Then
            'Von NORMAL zu HIT wechseln, wenn man anfängt zu drücken
            If MULTIKEY( i ) Then KB_Key(i) = KB_Hit
        ElseIf KB_Key(i) = KB_Hit Then
            'Von HIT zu DOWN wechseln, wenn man gedrückt hält.
            'Von HIT zu UP wechseln, wenn man loslässt/gelassen hat.
            If MULTIKEY( i ) Then KB_Key(i) = KB_Down Else KB_Key(i) = KB_Up
        ElseIf KB_Key(i) = KB_Down Then
            'Von DOWN zu UP wechseln, wenn man loslässt. Sonst belassen.
            If Not MULTIKEY( i ) Then KB_Key(i) = KB_Up
        ElseIf KB_Key(i) = KB_Up Then
            'Von UP zu HIT wechseln, wenn man anfängt zu drücken
            'Von UP zu NORMAL wechseln wenn dauerhaft losgelassen
            If MULTIKEY( i ) Then KB_Key(i) = KB_Hit Else KB_Key(i) = KB_Normal
        EndIf
    Next
    Return 1
End Function

'=========================================================================

Function KB_KeyNormal( ByVal Taste As ubyte ) As UByte
    If KB_Key(Taste) = KB_Normal Then Return 1 Else Return 0
End Function

'=========================================================================

Function KB_KeyHit( ByVal Taste As ubyte ) As UByte
    If KB_Key(Taste) = KB_Hit Then Return 1 Else Return 0
End Function

'=========================================================================

Function KB_KeyDown( ByVal Taste As ubyte ) As UByte
    If KB_Key(Taste) = KB_Down Then Return 1 Else Return 0
End Function

'=========================================================================

Function KB_KeyUp( ByVal Taste As ubyte ) As UByte
    If KB_Key(Taste) = KB_Up Then Return 1 Else Return 0
End Function

'=========================================================================

Sub KB_Test()
    Screen 19, 8, 2
    Do
        KB_KeyUpdate()
        cls
        ? "Drücken sie eine beliebige Taste (ESC zum Beenden)."
        For X As UShort = 0 To 255
            If KB_KeyDown( X ) = 1 Then
                ? "ID:     " & Str( X )
                ? "Name:   " & KB_GetKeyName( X )
                ? "Gruppe: " & KB_GetKeyTypString( X )
            EndIf
        Next
        Flip
        Sleep 50, 1
    Loop Until KB_KeyDown( KB_Key_ESC ) = 1
End Sub

'KB_Test()


Gruss
Weazle


Zuletzt bearbeitet von Weazle25 am 14.11.2007, 05:13, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4699
Wohnort: ~/

BeitragVerfasst am: 12.11.2007, 17:59    Titel: Antworten mit Zitat

Statusbericht meines Laptops
Folgende Tasten liefern bei mir die ID 0:
ß bzw. ?
Apostrophe
Umlaute (ä, ö, ü)
Sonderzeichen +, #, <
AltGr

- bzw _ liefert ID 12: ß bzw. ?
z und y sind vertauscht (ich verwende eine deutche Tastatur happy)

Der Rest hat, soweit ich das sehe, funktioniert.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 12.11.2007, 19:01    Titel: Antworten mit Zitat

Bei mir wurde alles korreckt erkannt bis auf eine ausnahme:
Alt Gr wird als wird als linke Alt Alt erkannt.
Dazu kommt noch das die Paustaste gar nicht angezeigt wird, aber das ist ja normal zwinkern
Die sache mit - / kann ich nur bestätigen.. (ID = 53)

Die beiden übeltäter:
Code:
CONST KB_Key_Line           =  53   ' - und _
'...
CONST KB_Key_NumDiv         =  53

_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Weazle25



Anmeldungsdatum: 04.11.2007
Beiträge: 18
Wohnort: Stralsund (Mecklenburg-Vorpommern)

BeitragVerfasst am: 13.11.2007, 16:13    Titel: Antworten mit Zitat

AndT hat Folgendes geschrieben:
Bei mir wurde alles korreckt erkannt bis auf eine ausnahme:
Alt Gr wird als wird als linke Alt Alt erkannt.
Dazu kommt noch das die Paustaste gar nicht angezeigt wird, aber das ist ja normal zwinkern
Die sache mit - / kann ich nur bestätigen.. (ID = 53)


Ja das mit der AltGr-Taste habe ich auch (hab ich wohl vergessen zu erwähnen).
Scheint wohl als wäre MultiKey() etwas buggy.

AndT hat Folgendes geschrieben:

Die beiden übeltäter:
Code:
CONST KB_Key_Line           =  53   ' - und _
'...
CONST KB_Key_NumDiv         =  53


Daran liegt es devinitiev nicht denn die Funktionen "KB_KeyUpdate(), KB_KeyNormal(), KB_KeyHit(), KB_KeyDown() und KB_KeyUp()" benutzen nur die Konstanten KB_Normal, KB_Hit, KB_Down und KB_Up.
An doppelten Key-Konstanten kann es also nicht liegen.

Seltsam ist an dieser Stelle auch das gerade die Tasten die hier so viele Probleme bereiten in der fbgfx.bi gar nicht erst definiert wurden.


Gruss
Weazle
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Weazle25



Anmeldungsdatum: 04.11.2007
Beiträge: 18
Wohnort: Stralsund (Mecklenburg-Vorpommern)

BeitragVerfasst am: 26.02.2009, 04:02    Titel: Antworten mit Zitat

Nach langer FB-Abstinenz mal wieder ein Update:
Die Lib hab ich komplett neu geschrieben.
Hier der Code:
(z.Z. nur für Windows - Umsetzung auf Linux ist aber geplant)

Teil 1
Code:

'Tastengruppen
Const As Byte KBD_UnbekannteTaste = -1
Const As Byte KBD_NichtBelegt     =  0
Const As Byte KBD_Zahl            =  1
Const As Byte KBD_Buchstabe       =  2
Const As Byte KBD_Functionstaste  =  3
Const As Byte KBD_Zahlenblock     =  4
Const As Byte KBD_Cursorblock     =  5
Const As Byte KBD_6erBlock        =  6
Const As Byte KBD_Steuertaste     =  7
Const As Byte KBD_Sonderzeichen   =  8
Const As Byte KBD_Windowstaste    =  9
Const As Byte KBD_Multimediataste = 10
Const As Byte KBD_Internettaste   = 11
Const As Byte KBD_Systemtaste     = 12
Const As Byte KBD_Maustaste       = 13


'Die Zustände der Tasten
Const As UByte KBD_State_Normal = 0
Const As UByte KBD_State_Hit    = 1
Const As UByte KBD_State_Down   = 2
Const As UByte KBD_State_Up     = 3

Dim Shared As Byte KBD_Keys( 0 To 255, 0 To 1 )
Dim Shared As String KBD_Names( 0 To 255 )


'==============================================================================================================================================================
'Zahlen
'==============================================================================================================================================================

Const As UByte KBD_0                   = &h30   :   KBD_Keys( KBD_0                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_0                   ) = "KBD_0"
Const As UByte KBD_1                   = &h31   :   KBD_Keys( KBD_1                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_1                   ) = "KBD_1"
Const As UByte KBD_2                   = &h32   :   KBD_Keys( KBD_2                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_2                   ) = "KBD_2"
Const As UByte KBD_3                   = &h33   :   KBD_Keys( KBD_3                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_3                   ) = "KBD_3"
Const As UByte KBD_4                   = &h34   :   KBD_Keys( KBD_4                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_4                   ) = "KBD_4"
Const As UByte KBD_5                   = &h35   :   KBD_Keys( KBD_5                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_5                   ) = "KBD_5"
Const As UByte KBD_6                   = &h36   :   KBD_Keys( KBD_6                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_6                   ) = "KBD_6"
Const As UByte KBD_7                   = &h37   :   KBD_Keys( KBD_7                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_7                   ) = "KBD_7"
Const As UByte KBD_8                   = &h38   :   KBD_Keys( KBD_8                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_8                   ) = "KBD_8"
Const As UByte KBD_9                   = &h39   :   KBD_Keys( KBD_9                   , 1 ) = KBD_Zahl              :   KBD_Names( KBD_9                   ) = "KBD_9"


'==============================================================================================================================================================
'Buchstaben
'==============================================================================================================================================================

Const As UByte KBD_A                   = &h41   :   KBD_Keys( KBD_A                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_A                   ) = "KBD_A"
Const As UByte KBD_B                   = &h42   :   KBD_Keys( KBD_B                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_B                   ) = "KBD_B"
Const As UByte KBD_C                   = &h43   :   KBD_Keys( KBD_C                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_C                   ) = "KBD_C"
Const As UByte KBD_D                   = &h44   :   KBD_Keys( KBD_D                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_D                   ) = "KBD_D"
Const As UByte KBD_E                   = &h45   :   KBD_Keys( KBD_E                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_E                   ) = "KBD_E"
Const As UByte KBD_F                   = &h46   :   KBD_Keys( KBD_F                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_F                   ) = "KBD_F"
Const As UByte KBD_G                   = &h47   :   KBD_Keys( KBD_G                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_G                   ) = "KBD_G"
Const As UByte KBD_H                   = &h48   :   KBD_Keys( KBD_H                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_H                   ) = "KBD_H"
Const As UByte KBD_I                   = &h49   :   KBD_Keys( KBD_I                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_I                   ) = "KBD_I"
Const As UByte KBD_J                   = &h4A   :   KBD_Keys( KBD_J                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_J                   ) = "KBD_J"
Const As UByte KBD_K                   = &h4B   :   KBD_Keys( KBD_K                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_K                   ) = "KBD_K"
Const As UByte KBD_L                   = &h4C   :   KBD_Keys( KBD_L                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_L                   ) = "KBD_L"
Const As UByte KBD_M                   = &h4D   :   KBD_Keys( KBD_M                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_M                   ) = "KBD_M"
Const As UByte KBD_N                   = &h4E   :   KBD_Keys( KBD_N                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_N                   ) = "KBD_N"
Const As UByte KBD_O                   = &h4F   :   KBD_Keys( KBD_O                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_O                   ) = "KBD_O"
Const As UByte KBD_P                   = &h50   :   KBD_Keys( KBD_P                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_P                   ) = "KBD_P"
Const As UByte KBD_Q                   = &h51   :   KBD_Keys( KBD_Q                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_Q                   ) = "KBD_Q"
Const As UByte KBD_R                   = &h52   :   KBD_Keys( KBD_R                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_R                   ) = "KBD_R"
Const As UByte KBD_S                   = &h53   :   KBD_Keys( KBD_S                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_S                   ) = "KBD_S"
Const As UByte KBD_T                   = &h54   :   KBD_Keys( KBD_T                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_T                   ) = "KBD_T"
Const As UByte KBD_U                   = &h55   :   KBD_Keys( KBD_U                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_U                   ) = "KBD_U"
Const As UByte KBD_V                   = &h56   :   KBD_Keys( KBD_V                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_V                   ) = "KBD_V"
Const As UByte KBD_W                   = &h57   :   KBD_Keys( KBD_W                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_W                   ) = "KBD_W"
Const As UByte KBD_X                   = &h58   :   KBD_Keys( KBD_X                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_X                   ) = "KBD_X"
Const As UByte KBD_Y                   = &h59   :   KBD_Keys( KBD_Y                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_Y                   ) = "KBD_Y"
Const As UByte KBD_Z                   = &h5A   :   KBD_Keys( KBD_Z                   , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_Z                   ) = "KBD_Z"
Const As UByte KBD_UE                  = &hBA   :   KBD_Keys( KBD_UE                  , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_UE                  ) = "KBD_UE"
Const As UByte KBD_OE                  = &hC0   :   KBD_Keys( KBD_OE                  , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_OE                  ) = "KBD_OE"
Const As UByte KBD_AE                  = &hDE   :   KBD_Keys( KBD_AE                  , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_AE                  ) = "KBD_AE"
Const As UByte KBD_SZ                  = &hDB   :   KBD_Keys( KBD_SZ                  , 1 ) = KBD_Buchstabe         :   KBD_Names( KBD_SZ                  ) = "KBD_SZ"


'==============================================================================================================================================================
'Sonderzeichen
'==============================================================================================================================================================

' Taste [+*~]
Const As UByte KBD_PLUS                = &hBB   :   KBD_Keys( KBD_PLUS                , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_PLUS                ) = "KBD_PLUS"
' Taste [,;]
Const As UByte KBD_COMMA               = &hBC   :   KBD_Keys( KBD_COMMA               , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_COMMA               ) = "KBD_COMMA"
' Taste [-_]
Const As UByte KBD_MINUS               = &hBD   :   KBD_Keys( KBD_MINUS               , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_MINUS               ) = "KBD_MINUS"
' Taste [.:]
Const As UByte KBD_DOT                 = &hBE   :   KBD_Keys( KBD_DOT                 , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_DOT                 ) = "KBD_OEM_DOT"
' Taste [#']
Const As UByte KBD_RHOMB               = &hBF   :   KBD_Keys( KBD_RHOMB               , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_RHOMB               ) = "KBD_RHOMB"
' Taste [^°] (keine Ahnung wie ich diese Taste nennen soll)
Const As UByte KBD_OEM_5               = &hDC   :   KBD_Keys( KBD_OEM_5               , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_OEM_5               ) = "KBD_OEM_5"
' Taste [´`]
Const As UByte KBD_APOSTROPHE          = &hDD   :   KBD_Keys( KBD_APOSTROPHE          , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_APOSTROPHE          ) = "KBD_APOSTROPHE"
' Taste [<>|] (keine Ahnung wie ich diese Taste nennen soll)
Const As UByte KBD_OEM_102             = &hE2   :   KBD_Keys( KBD_OEM_102             , 1 ) = KBD_Sonderzeichen     :   KBD_Names( KBD_OEM_102             ) = "KBD_OEM_102"


'==============================================================================================================================================================
'Zahlenblock
'==============================================================================================================================================================

Const As UByte KBD_NUMPAD0             = &h60   :   KBD_Keys( KBD_NUMPAD0             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD0             ) = "KBD_NUMPAD0"
Const As UByte KBD_NUMPAD1             = &h61   :   KBD_Keys( KBD_NUMPAD1             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD1             ) = "KBD_NUMPAD1"
Const As UByte KBD_NUMPAD2             = &h62   :   KBD_Keys( KBD_NUMPAD2             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD2             ) = "KBD_NUMPAD2"
Const As UByte KBD_NUMPAD3             = &h63   :   KBD_Keys( KBD_NUMPAD3             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD3             ) = "KBD_NUMPAD3"
Const As UByte KBD_NUMPAD4             = &h64   :   KBD_Keys( KBD_NUMPAD4             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD4             ) = "KBD_NUMPAD4"
Const As UByte KBD_NUMPAD5             = &h65   :   KBD_Keys( KBD_NUMPAD5             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD5             ) = "KBD_NUMPAD5"
Const As UByte KBD_NUMPAD6             = &h66   :   KBD_Keys( KBD_NUMPAD6             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD6             ) = "KBD_NUMPAD6"
Const As UByte KBD_NUMPAD7             = &h67   :   KBD_Keys( KBD_NUMPAD7             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD7             ) = "KBD_NUMPAD7"
Const As UByte KBD_NUMPAD8             = &h68   :   KBD_Keys( KBD_NUMPAD8             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD8             ) = "KBD_NUMPAD8"
Const As UByte KBD_NUMPAD9             = &h69   :   KBD_Keys( KBD_NUMPAD9             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMPAD9             ) = "KBD_NUMPAD9"
Const As UByte KBD_MULTIPLY            = &h6A   :   KBD_Keys( KBD_MULTIPLY            , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_MULTIPLY            ) = "KBD_MULTIPLY"
Const As UByte KBD_ADD                 = &h6B   :   KBD_Keys( KBD_ADD                 , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_ADD                 ) = "KBD_ADD"
Const As UByte KBD_SEPARATOR           = &h6C   :   KBD_Keys( KBD_SEPARATOR           , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_SEPARATOR           ) = "KBD_SEPARATOR"
Const As UByte KBD_SUBTRACT            = &h6D   :   KBD_Keys( KBD_SUBTRACT            , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_SUBTRACT            ) = "KBD_SUBTRACT"
Const As UByte KBD_DECIMAL             = &h6E   :   KBD_Keys( KBD_DECIMAL             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_DECIMAL             ) = "KBD_DECIMAL"
Const As UByte KBD_DIVIDE              = &h6F   :   KBD_Keys( KBD_DIVIDE              , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_DIVIDE              ) = "KBD_DIVIDE"
Const As UByte KBD_NUMLOCK             = &h90   :   KBD_Keys( KBD_NUMLOCK             , 1 ) = KBD_Zahlenblock       :   KBD_Names( KBD_NUMLOCK             ) = "KBD_NUMLOCK"


'==============================================================================================================================================================
'Cursorblock
'==============================================================================================================================================================

Const As UByte KBD_LEFT                = &h25   :   KBD_Keys( KBD_LEFT                , 1 ) = KBD_Cursorblock       :   KBD_Names( KBD_LEFT                ) = "KBD_LEFT"
Const As UByte KBD_UP                  = &h26   :   KBD_Keys( KBD_UP                  , 1 ) = KBD_Cursorblock       :   KBD_Names( KBD_UP                  ) = "KBD_UP"
Const As UByte KBD_RIGHT               = &h27   :   KBD_Keys( KBD_RIGHT               , 1 ) = KBD_Cursorblock       :   KBD_Names( KBD_RIGHT               ) = "KBD_RIGHT"
Const As UByte KBD_DOWN                = &h28   :   KBD_Keys( KBD_DOWN                , 1 ) = KBD_Cursorblock       :   KBD_Names( KBD_DOWN                ) = "KBD_DOWN"


'==============================================================================================================================================================
'6er Block
'==============================================================================================================================================================

' Taste [Bild auf]
Const As UByte KBD_PAGE_UP             = &h21   :   KBD_Keys( KBD_PAGE_UP             , 1 ) = KBD_6erBlock          :   KBD_Names( KBD_PAGE_UP             ) = "KBD_PAGE_UP"
' Taste [Bild ab]
Const As UByte KBD_PAGE_DOWN           = &h22   :   KBD_Keys( KBD_PAGE_DOWN           , 1 ) = KBD_6erBlock          :   KBD_Names( KBD_PAGE_DOWN           ) = "KBD_PAGE_DOWN"
' Taste [Ende]
Const As UByte KBD_END                 = &h23   :   KBD_Keys( KBD_END                 , 1 ) = KBD_6erBlock          :   KBD_Names( KBD_END                 ) = "KBD_END"
' Taste [Pos1]
Const As UByte KBD_HOME                = &h24   :   KBD_Keys( KBD_HOME                , 1 ) = KBD_6erBlock          :   KBD_Names( KBD_HOME                ) = "KBD_HOME"
' Taste [Einfg]
Const As UByte KBD_INSERT              = &h2D   :   KBD_Keys( KBD_INSERT              , 1 ) = KBD_6erBlock          :   KBD_Names( KBD_INSERT              ) = "KBD_INSERT"
' Taste [Entf]
Const As UByte KBD_DELETE              = &h2E   :   KBD_Keys( KBD_DELETE              , 1 ) = KBD_6erBlock          :   KBD_Names( KBD_DELETE              ) = "KBD_DELETE"


'==============================================================================================================================================================
'Funktionstasten
'==============================================================================================================================================================

Const As UByte KBD_F1                  = &h70   :   KBD_Keys( KBD_F1                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F1                  ) = "KBD_F1"
Const As UByte KBD_F2                  = &h71   :   KBD_Keys( KBD_F2                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F2                  ) = "KBD_F2"
Const As UByte KBD_F3                  = &h72   :   KBD_Keys( KBD_F3                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F3                  ) = "KBD_F3"
Const As UByte KBD_F4                  = &h73   :   KBD_Keys( KBD_F4                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F4                  ) = "KBD_F4"
Const As UByte KBD_F5                  = &h74   :   KBD_Keys( KBD_F5                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F5                  ) = "KBD_F5"
Const As UByte KBD_F6                  = &h75   :   KBD_Keys( KBD_F6                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F6                  ) = "KBD_F6"
Const As UByte KBD_F7                  = &h76   :   KBD_Keys( KBD_F7                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F7                  ) = "KBD_F7"
Const As UByte KBD_F8                  = &h77   :   KBD_Keys( KBD_F8                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F8                  ) = "KBD_F8"
Const As UByte KBD_F9                  = &h78   :   KBD_Keys( KBD_F9                  , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F9                  ) = "KBD_F9"
Const As UByte KBD_F10                 = &h79   :   KBD_Keys( KBD_F10                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F10                 ) = "KBD_F10"
Const As UByte KBD_F11                 = &h7A   :   KBD_Keys( KBD_F11                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F11                 ) = "KBD_F11"
Const As UByte KBD_F12                 = &h7B   :   KBD_Keys( KBD_F12                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F12                 ) = "KBD_F12"
Const As UByte KBD_F13                 = &h7C   :   KBD_Keys( KBD_F13                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F13                 ) = "KBD_F13"
Const As UByte KBD_F14                 = &h7D   :   KBD_Keys( KBD_F14                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F14                 ) = "KBD_F14"
Const As UByte KBD_F15                 = &h7E   :   KBD_Keys( KBD_F15                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F15                 ) = "KBD_F15"
Const As UByte KBD_F16                 = &h7F   :   KBD_Keys( KBD_F16                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F16                 ) = "KBD_F16"
Const As UByte KBD_F17                 = &h80   :   KBD_Keys( KBD_F17                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F17                 ) = "KBD_F17"
Const As UByte KBD_F18                 = &h81   :   KBD_Keys( KBD_F18                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F18                 ) = "KBD_F18"
Const As UByte KBD_F19                 = &h82   :   KBD_Keys( KBD_F19                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F19                 ) = "KBD_F19"
Const As UByte KBD_F20                 = &h83   :   KBD_Keys( KBD_F20                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F20                 ) = "KBD_F20"
Const As UByte KBD_F21                 = &h84   :   KBD_Keys( KBD_F21                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F21                 ) = "KBD_F21"
Const As UByte KBD_F22                 = &h85   :   KBD_Keys( KBD_F22                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F22                 ) = "KBD_F22"
Const As UByte KBD_F23                 = &h86   :   KBD_Keys( KBD_F23                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F23                 ) = "KBD_F23"
Const As UByte KBD_F24                 = &h87   :   KBD_Keys( KBD_F24                 , 1 ) = KBD_Functionstaste    :   KBD_Names( KBD_F24                 ) = "KBD_F24"


'==============================================================================================================================================================
'Steuertasten
'==============================================================================================================================================================

Const As UByte KBD_ESCAPE              = &h1B   :   KBD_Keys( KBD_ESCAPE              , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_ESCAPE              ) = "KBD_ESCAPE"
' Taste [Shift links] (Umschalttaste links)
Const As UByte KBD_LSHIFT              = &hA0   :   KBD_Keys( KBD_LSHIFT              , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_LSHIFT              ) = "KBD_LSHIFT"
' Taste [Shift rechts] (Umschalttaste rechts)
Const As UByte KBD_RSHIFT              = &hA1   :   KBD_Keys( KBD_RSHIFT              , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_RSHIFT              ) = "KBD_RSHIFT"
' Taste [Shift links] oder [Shift rechts] oder beide gedrückt
Const As UByte KBD_SHIFT               = &h10   :   KBD_Keys( KBD_SHIFT               , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_SHIFT               ) = "KBD_SHIFT"
' Taste [CTRL links] (linke Strg-Taste)
Const As UByte KBD_LCTRL               = &hA2   :   KBD_Keys( KBD_LCTRL               , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_LCTRL               ) = "KBD_LCTRL"
' Taste [CTRL rechts] (rechte Strg-Taste)
Const As UByte KBD_RCTRL               = &hA3   :   KBD_Keys( KBD_RCTRL               , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_RCTRL               ) = "KBD_RCTRL"
' Taste [CTRL links] oder [CTRL rechts] oder beide gedrückt
Const As UByte KBD_CTRL                = &h11   :   KBD_Keys( KBD_CTRL                , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_CTRL                ) = "KBD_CTRL"
' Taste [Alt]
Const As UByte KBD_LALT                = &hA4   :   KBD_Keys( KBD_LALT                , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_LALT                ) = "KBD_LALT"
' Taste [Alt Gr]
Const As UByte KBD_RALT                = &hA5   :   KBD_Keys( KBD_RALT                , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_RALT                ) = "KBD_RALT"
' Taste [Alt] oder [Alt Gr] oder beide gedrückt
Const As UByte KBD_ALT                 = &h12   :   KBD_Keys( KBD_ALT                 , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_ALT                 ) = "KBD_ALT"
' Taste [Rückgängig]
Const As UByte KBD_BACK                = &h08   :   KBD_Keys( KBD_BACK                , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_BACK                ) = "KBD_BACK"
' Taste [Tabulator]
Const As UByte KBD_TAB                 = &h09   :   KBD_Keys( KBD_TAB                 , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_TAB                 ) = "KBD_TAB"
' Taste [Enter]
Const As UByte KBD_RETURN              = &h0D   :   KBD_Keys( KBD_RETURN              , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_RETURN              ) = "KBD_RETURN"
' Taste [Caps lock] (Feststelltaste für Großschreibung
Const As UByte KBD_CAPSLOCK            = &h14   :   KBD_Keys( KBD_CAPSLOCK            , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_CAPSLOCK            ) = "KBD_CAPSLOCK"
' Taste [Leertaste]
Const As UByte KBD_SPACE               = &h20   :   KBD_Keys( KBD_SPACE               , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_SPACE               ) = "KBD_SPACE"
' Taste [Druck]
Const As UByte KBD_SNAPSHOT            = &h2C   :   KBD_Keys( KBD_SNAPSHOT            , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_SNAPSHOT            ) = "KBD_SNAPSHOT"
Const As UByte KBD_PAUSE               = &h13   :   KBD_Keys( KBD_PAUSE               , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_PAUSE               ) = "KBD_PAUSE"
Const As UByte KBD_SCROLL              = &h91   :   KBD_Keys( KBD_SCROLL              , 1 ) = KBD_Steuertaste       :   KBD_Names( KBD_SCROLL              ) = "KBD_SCROLL"


'==============================================================================================================================================================
'Windowstasten
'==============================================================================================================================================================

' Taste [Win links]
Const As UByte KBD_LWIN                = &h5B   :   KBD_Keys( KBD_LWIN                , 1 ) = KBD_Windowstaste      :   KBD_Names( KBD_LWIN                ) = "KBD_LWIN"
' Taste [Win rechts]
Const As UByte KBD_RWIN                = &h5C   :   KBD_Keys( KBD_RWIN                , 1 ) = KBD_Windowstaste      :   KBD_Names( KBD_RWIN                ) = "KBD_RWIN"
' Taste [Kontext-Menü] (Windows-Tastatur)
Const As UByte KBD_APPS                = &h5D   :   KBD_Keys( KBD_APPS                , 1 ) = KBD_Windowstaste      :   KBD_Names( KBD_APPS                ) = "KBD_APPS"


'==============================================================================================================================================================
'Multimediatasten
'==============================================================================================================================================================

Const As UByte KBD_VOLUME_MUTE         = &hAD   :   KBD_Keys( KBD_VOLUME_MUTE         , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_VOLUME_MUTE         ) = "KBD_VOLUME_MUTE"
Const As UByte KBD_VOLUME_DOWN         = &hAE   :   KBD_Keys( KBD_VOLUME_DOWN         , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_VOLUME_DOWN         ) = "KBD_VOLUME_DOWN"
Const As UByte KBD_VOLUME_UP           = &hAF   :   KBD_Keys( KBD_VOLUME_UP           , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_VOLUME_UP           ) = "KBD_VOLUME_UP"
Const As UByte KBD_MEDIA_NEXT_TRACK    = &hB0   :   KBD_Keys( KBD_MEDIA_NEXT_TRACK    , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_MEDIA_NEXT_TRACK    ) = "KBD_MEDIA_NEXT_TRACK"
Const As UByte KBD_MEDIA_PREV_TRACK    = &hB1   :   KBD_Keys( KBD_MEDIA_PREV_TRACK    , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_MEDIA_PREV_TRACK    ) = "KBD_MEDIA_PREV_TRACK"
Const As UByte KBD_MEDIA_STOP          = &hB2   :   KBD_Keys( KBD_MEDIA_STOP          , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_MEDIA_STOP          ) = "KBD_MEDIA_STOP"
Const As UByte KBD_MEDIA_PLAY_PAUSE    = &hB3   :   KBD_Keys( KBD_MEDIA_PLAY_PAUSE    , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_MEDIA_PLAY_PAUSE    ) = "KBD_MEDIA_PLAY_PAUSE"
Const As UByte KBD_LAUNCH_MAIL         = &hB4   :   KBD_Keys( KBD_LAUNCH_MAIL         , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_LAUNCH_MAIL         ) = "KBD_LAUNCH_MAIL"
Const As UByte KBD_LAUNCH_MEDIA_SELECT = &hB5   :   KBD_Keys( KBD_LAUNCH_MEDIA_SELECT , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_LAUNCH_MEDIA_SELECT ) = "KBD_LAUNCH_MEDIA_SELECT"
Const As UByte KBD_LAUNCH_APP1         = &hB6   :   KBD_Keys( KBD_LAUNCH_APP1         , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_LAUNCH_APP1         ) = "KBD_LAUNCH_APP1"
Const As UByte KBD_LAUNCH_APP2         = &hB7   :   KBD_Keys( KBD_LAUNCH_APP2         , 1 ) = KBD_Multimediataste   :   KBD_Names( KBD_LAUNCH_APP2         ) = "KBD_LAUNCH_APP2"


'==============================================================================================================================================================
'Internettasten
'==============================================================================================================================================================

Const As UByte KBD_BROWSER_BACK        = &hA6   :   KBD_Keys( KBD_BROWSER_BACK        , 1 ) = KBD_Internettaste     :   KBD_Names( KBD_BROWSER_BACK        ) = "KBD_BROWSER_BACK"
Const As UByte KBD_BROWSER_FORWARD     = &hA7   :   KBD_Keys( KBD_BROWSER_FORWARD     , 1 ) = KBD_Internettaste     :   KBD_Names( KBD_BROWSER_FORWARD     ) = "KBD_BROWSER_FORWARD"
Const As UByte KBD_BROWSER_REFRESH     = &hA8   :   KBD_Keys( KBD_BROWSER_REFRESH     , 1 ) = KBD_Internettaste     :   KBD_Names( KBD_BROWSER_REFRESH     ) = "KBD_BROWSER_REFRESH"
Const As UByte KBD_BROWSER_STOP        = &hA9   :   KBD_Keys( KBD_BROWSER_STOP        , 1 ) = KBD_Internettaste     :   KBD_Names( KBD_BROWSER_STOP        ) = "KBD_BROWSER_STOP"
Const As UByte KBD_BROWSER_SEARCH      = &hAA   :   KBD_Keys( KBD_BROWSER_SEARCH      , 1 ) = KBD_Internettaste     :   KBD_Names( KBD_BROWSER_SEARCH      ) = "KBD_BROWSER_SEARCH"
Const As UByte KBD_BROWSER_FAVORITES   = &hAB   :   KBD_Keys( KBD_BROWSER_FAVORITES   , 1 ) = KBD_Internettaste     :   KBD_Names( KBD_BROWSER_FAVORITES   ) = "KBD_BROWSER_FAVORITES"
Const As UByte KBD_BROWSER_HOME        = &hAC   :   KBD_Keys( KBD_BROWSER_HOME        , 1 ) = KBD_Internettaste     :   KBD_Names( KBD_BROWSER_HOME        ) = "KBD_BROWSER_HOME"


'==============================================================================================================================================================
'Systemtasten
'==============================================================================================================================================================
Const As UByte KBD_SLEEP               = &h5F   :   KBD_Keys( KBD_SLEEP               , 1 ) = KBD_Systemtaste       :   KBD_Names( KBD_SLEEP               ) = "KBD_SLEEP"


'==============================================================================================================================================================
'Maustasten
'==============================================================================================================================================================

Const As UByte KBD_LMB                 = &h01   :   KBD_Keys( KBD_LMB                 , 1 ) = KBD_Maustaste       :   KBD_Names( KBD_LMB                 ) = "KBD_LMB"
Const As UByte KBD_MMB                 = &h04   :   KBD_Keys( KBD_MMB                 , 1 ) = KBD_Maustaste       :   KBD_Names( KBD_MMB                 ) = "KBD_MMB"
Const As UByte KBD_RMB                 = &h02   :   KBD_Keys( KBD_RMB                 , 1 ) = KBD_Maustaste       :   KBD_Names( KBD_RMB                 ) = "KBD_RMB"


'==============================================================================================================================================================
'Tasten die noch nicht in Kategorien einsortiert wurden
'==============================================================================================================================================================
Const As UByte KBD_ACCEPT              = &h1E   :   KBD_Keys( KBD_ACCEPT              , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_ACCEPT              ) = "KBD_ACCEPT"
Const As UByte KBD_CANCEL              = &h03   :   KBD_Keys( KBD_CANCEL              , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_CANCEL              ) = "KBD_CANCEL"
Const As UByte KBD_SELECT              = &h29   :   KBD_Keys( KBD_SELECT              , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_SELECT              ) = "KBD_SELECT"
Const As UByte KBD_PRINT               = &h2A   :   KBD_Keys( KBD_PRINT               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_PRINT               ) = "KBD_PRINT"
Const As UByte KBD_EXECUTE             = &h2B   :   KBD_Keys( KBD_EXECUTE             , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_EXECUTE             ) = "KBD_EXECUTE"
Const As UByte KBD_HELP                = &h2F   :   KBD_Keys( KBD_HELP                , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_HELP                ) = "KBD_HELP"
Const As UByte KBD_XBUTTON1            = &h05   :   KBD_Keys( KBD_XBUTTON1            , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_XBUTTON1            ) = "KBD_XBUTTON1"
Const As UByte KBD_XBUTTON2            = &h06   :   KBD_Keys( KBD_XBUTTON2            , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_XBUTTON2            ) = "KBD_XBUTTON2"
Const As UByte KBD_KANA                = &h15   :   KBD_Keys( KBD_KANA                , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_KANA                ) = "KBD_KANA"
Const As UByte KBD_HANGEUL             = &h15   :   KBD_Keys( KBD_HANGEUL             , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_HANGEUL             ) = "KBD_HANGEUL"
Const As UByte KBD_HANGUL              = &h15   :   KBD_Keys( KBD_HANGUL              , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_HANGUL              ) = "KBD_HANGUL"
Const As UByte KBD_JUNJA               = &h17   :   KBD_Keys( KBD_JUNJA               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_JUNJA               ) = "KBD_JUNJA"
Const As UByte KBD_FINAL               = &h18   :   KBD_Keys( KBD_FINAL               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_FINAL               ) = "KBD_FINAL"
Const As UByte KBD_HANJA               = &h19   :   KBD_Keys( KBD_HANJA               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_HANJA               ) = "KBD_HANJA"
Const As UByte KBD_KANJI               = &h19   :   KBD_Keys( KBD_KANJI               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_KANJI               ) = "KBD_KANJI"
Const As UByte KBD_CONVERT             = &h1C   :   KBD_Keys( KBD_CONVERT             , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_CONVERT             ) = "KBD_CONVERT"
Const As UByte KBD_NONCONVERT          = &h1D   :   KBD_Keys( KBD_NONCONVERT          , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_NONCONVERT          ) = "KBD_NONCONVERT"
Const As UByte KBD_MODECHANGE          = &h1F   :   KBD_Keys( KBD_MODECHANGE          , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_MODECHANGE          ) = "KBD_MODECHANGE"
Const As UByte KBD_OEM_8               = &hDF   :   KBD_Keys( KBD_OEM_8               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_OEM_8               ) = "KBD_OEM_8"
Const As UByte KBD_PROCESSKEY          = &hE5   :   KBD_Keys( KBD_PROCESSKEY          , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_PROCESSKEY          ) = "KBD_PROCESSKEY"
Const As UByte KBD_PACKET              = &hE7   :   KBD_Keys( KBD_PACKET              , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_PACKET              ) = "KBD_PACKET"
Const As UByte KBD_ATTN                = &hF6   :   KBD_Keys( KBD_ATTN                , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_ATTN                ) = "KBD_ATTN"
Const As UByte KBD_CRSEL               = &hF7   :   KBD_Keys( KBD_CRSEL               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_CRSEL               ) = "KBD_CRSEL"
Const As UByte KBD_EXSEL               = &hF8   :   KBD_Keys( KBD_EXSEL               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_EXSEL               ) = "KBD_EXSEL"
Const As UByte KBD_EREOF               = &hF9   :   KBD_Keys( KBD_EREOF               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_EREOF               ) = "KBD_EREOF"
Const As UByte KBD_PLAY                = &hFA   :   KBD_Keys( KBD_PLAY                , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_PLAY                ) = "KBD_PLAY"
Const As UByte KBD_ZOOM                = &hFB   :   KBD_Keys( KBD_ZOOM                , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_ZOOM                ) = "KBD_ZOOM"
Const As UByte KBD_NONAME              = &hFC   :   KBD_Keys( KBD_NONAME              , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_NONAME              ) = "KBD_NONAME"
Const As UByte KBD_PA1                 = &hFD   :   KBD_Keys( KBD_PA1                 , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_PA1                 ) = "KBD_PA1"
Const As UByte KBD_OEM_CLEAR           = &hFE   :   KBD_Keys( KBD_OEM_CLEAR           , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_OEM_CLEAR           ) = "KBD_OEM_CLEAR"
Const As UByte KBD_CLEAR               = &h0C   :   KBD_Keys( KBD_CLEAR               , 1 ) = KBD_UnbekannteTaste   :   KBD_Names( KBD_CLEAR               ) = "KBD_CLEAR"


'==============================================================================================================================================================
'Nicht belegt
'==============================================================================================================================================================

Const As UByte KBD_UnUsed01            = &h07   :   KBD_Keys( KBD_UnUsed01            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed01            ) = "KBD_UnUsed01"
Const As UByte KBD_UnUsed02            = &h0A   :   KBD_Keys( KBD_UnUsed02            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed02            ) = "KBD_UnUsed02"
Const As UByte KBD_UnUsed03            = &h0B   :   KBD_Keys( KBD_UnUsed03            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed03            ) = "KBD_UnUsed03"
Const As UByte KBD_UnUsed04            = &h0E   :   KBD_Keys( KBD_UnUsed04            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed04            ) = "KBD_UnUsed04"
Const As UByte KBD_UnUsed05            = &h0F   :   KBD_Keys( KBD_UnUsed05            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed05            ) = "KBD_UnUsed05"
Const As UByte KBD_UnUsed06            = &h16   :   KBD_Keys( KBD_UnUsed06            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed06            ) = "KBD_UnUsed06"
Const As UByte KBD_UnUsed07            = &h1A   :   KBD_Keys( KBD_UnUsed07            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed07            ) = "KBD_UnUsed07"
Const As UByte KBD_UnUsed08            = &h3A   :   KBD_Keys( KBD_UnUsed08            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed08            ) = "KBD_UnUsed08"
Const As UByte KBD_UnUsed09            = &h3B   :   KBD_Keys( KBD_UnUsed09            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed09            ) = "KBD_UnUsed09"
Const As UByte KBD_UnUsed10            = &h3C   :   KBD_Keys( KBD_UnUsed10            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed10            ) = "KBD_UnUsed10"
Const As UByte KBD_UnUsed11            = &h3D   :   KBD_Keys( KBD_UnUsed11            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed11            ) = "KBD_UnUsed11"
Const As UByte KBD_UnUsed12            = &h3E   :   KBD_Keys( KBD_UnUsed12            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed12            ) = "KBD_UnUsed12"
Const As UByte KBD_UnUsed13            = &h3F   :   KBD_Keys( KBD_UnUsed13            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed13            ) = "KBD_UnUsed13"
Const As UByte KBD_UnUsed14            = &h40   :   KBD_Keys( KBD_UnUsed14            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed14            ) = "KBD_UnUsed14"
Const As UByte KBD_UnUsed15            = &h5E   :   KBD_Keys( KBD_UnUsed15            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed15            ) = "KBD_UnUsed15"
Const As UByte KBD_UnUsed16            = &h88   :   KBD_Keys( KBD_UnUsed16            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed16            ) = "KBD_UnUsed16"
Const As UByte KBD_UnUsed17            = &h89   :   KBD_Keys( KBD_UnUsed17            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed17            ) = "KBD_UnUsed17"
Const As UByte KBD_UnUsed18            = &h8A   :   KBD_Keys( KBD_UnUsed18            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed18            ) = "KBD_UnUsed18"
Const As UByte KBD_UnUsed19            = &h8B   :   KBD_Keys( KBD_UnUsed19            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed19            ) = "KBD_UnUsed19"
Const As UByte KBD_UnUsed20            = &h8C   :   KBD_Keys( KBD_UnUsed20            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed20            ) = "KBD_UnUsed20"
Const As UByte KBD_UnUsed21            = &h8D   :   KBD_Keys( KBD_UnUsed21            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed21            ) = "KBD_UnUsed21"
Const As UByte KBD_UnUsed22            = &h8E   :   KBD_Keys( KBD_UnUsed22            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed22            ) = "KBD_UnUsed22"
Const As UByte KBD_UnUsed23            = &h8F   :   KBD_Keys( KBD_UnUsed23            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed23            ) = "KBD_UnUsed23"
Const As UByte KBD_UnUsed24            = &h92   :   KBD_Keys( KBD_UnUsed24            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed24            ) = "KBD_UnUsed24"
Const As UByte KBD_UnUsed25            = &h93   :   KBD_Keys( KBD_UnUsed25            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed25            ) = "KBD_UnUsed25"
Const As UByte KBD_UnUsed26            = &h94   :   KBD_Keys( KBD_UnUsed26            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed26            ) = "KBD_UnUsed26"
Const As UByte KBD_UnUsed27            = &h95   :   KBD_Keys( KBD_UnUsed27            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed27            ) = "KBD_UnUsed27"
Const As UByte KBD_UnUsed28            = &h96   :   KBD_Keys( KBD_UnUsed28            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed28            ) = "KBD_UnUsed28"
Const As UByte KBD_UnUsed29            = &h97   :   KBD_Keys( KBD_UnUsed29            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed29            ) = "KBD_UnUsed29"
Const As UByte KBD_UnUsed30            = &h98   :   KBD_Keys( KBD_UnUsed30            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed30            ) = "KBD_UnUsed30"
Const As UByte KBD_UnUsed31            = &h99   :   KBD_Keys( KBD_UnUsed31            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed31            ) = "KBD_UnUsed31"
Const As UByte KBD_UnUsed32            = &h9A   :   KBD_Keys( KBD_UnUsed32            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed32            ) = "KBD_UnUsed32"
Const As UByte KBD_UnUsed33            = &h9B   :   KBD_Keys( KBD_UnUsed33            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed33            ) = "KBD_UnUsed33"
Const As UByte KBD_UnUsed34            = &h9C   :   KBD_Keys( KBD_UnUsed34            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed34            ) = "KBD_UnUsed34"
Const As UByte KBD_UnUsed35            = &h9D   :   KBD_Keys( KBD_UnUsed35            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed35            ) = "KBD_UnUsed35"
Const As UByte KBD_UnUsed36            = &h9E   :   KBD_Keys( KBD_UnUsed36            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed36            ) = "KBD_UnUsed36"
Const As UByte KBD_UnUsed37            = &h9F   :   KBD_Keys( KBD_UnUsed37            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed37            ) = "KBD_UnUsed37"
Const As UByte KBD_UnUsed38            = &hB8   :   KBD_Keys( KBD_UnUsed38            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed38            ) = "KBD_UnUsed38"
Const As UByte KBD_UnUsed39            = &hB9   :   KBD_Keys( KBD_UnUsed39            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed39            ) = "KBD_UnUsed39"
Const As UByte KBD_UnUsed40            = &hC1   :   KBD_Keys( KBD_UnUsed40            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed40            ) = "KBD_UnUsed40"
Const As UByte KBD_UnUsed41            = &hC2   :   KBD_Keys( KBD_UnUsed41            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed41            ) = "KBD_UnUsed41"
Const As UByte KBD_UnUsed42            = &hC3   :   KBD_Keys( KBD_UnUsed42            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed42            ) = "KBD_UnUsed42"
Const As UByte KBD_UnUsed43            = &hC4   :   KBD_Keys( KBD_UnUsed43            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed43            ) = "KBD_UnUsed43"
Const As UByte KBD_UnUsed44            = &hC5   :   KBD_Keys( KBD_UnUsed44            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed44            ) = "KBD_UnUsed44"
Const As UByte KBD_UnUsed45            = &hC6   :   KBD_Keys( KBD_UnUsed45            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed45            ) = "KBD_UnUsed45"
Const As UByte KBD_UnUsed46            = &hC7   :   KBD_Keys( KBD_UnUsed46            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed46            ) = "KBD_UnUsed46"
Const As UByte KBD_UnUsed47            = &hC8   :   KBD_Keys( KBD_UnUsed47            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed47            ) = "KBD_UnUsed47"
Const As UByte KBD_UnUsed48            = &hC9   :   KBD_Keys( KBD_UnUsed48            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed48            ) = "KBD_UnUsed48"
Const As UByte KBD_UnUsed49            = &hCA   :   KBD_Keys( KBD_UnUsed49            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed49            ) = "KBD_UnUsed49"
Const As UByte KBD_UnUsed50            = &hCB   :   KBD_Keys( KBD_UnUsed50            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed50            ) = "KBD_UnUsed50"
Const As UByte KBD_UnUsed51            = &hCC   :   KBD_Keys( KBD_UnUsed51            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed51            ) = "KBD_UnUsed51"
Const As UByte KBD_UnUsed52            = &hCD   :   KBD_Keys( KBD_UnUsed52            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed52            ) = "KBD_UnUsed52"
Const As UByte KBD_UnUsed53            = &hCE   :   KBD_Keys( KBD_UnUsed53            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed53            ) = "KBD_UnUsed53"
Const As UByte KBD_UnUsed54            = &hCF   :   KBD_Keys( KBD_UnUsed54            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed54            ) = "KBD_UnUsed54"
Const As UByte KBD_UnUsed55            = &hD0   :   KBD_Keys( KBD_UnUsed55            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed55            ) = "KBD_UnUsed55"
Const As UByte KBD_UnUsed56            = &hD1   :   KBD_Keys( KBD_UnUsed56            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed56            ) = "KBD_UnUsed56"
Const As UByte KBD_UnUsed57            = &hD2   :   KBD_Keys( KBD_UnUsed57            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed57            ) = "KBD_UnUsed57"
Const As UByte KBD_UnUsed58            = &hD3   :   KBD_Keys( KBD_UnUsed58            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed58            ) = "KBD_UnUsed58"
Const As UByte KBD_UnUsed59            = &hD4   :   KBD_Keys( KBD_UnUsed59            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed59            ) = "KBD_UnUsed59"
Const As UByte KBD_UnUsed60            = &hD5   :   KBD_Keys( KBD_UnUsed60            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed60            ) = "KBD_UnUsed60"
Const As UByte KBD_UnUsed61            = &hD6   :   KBD_Keys( KBD_UnUsed61            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed61            ) = "KBD_UnUsed61"
Const As UByte KBD_UnUsed62            = &hD7   :   KBD_Keys( KBD_UnUsed62            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed62            ) = "KBD_UnUsed62"
Const As UByte KBD_UnUsed63            = &hD8   :   KBD_Keys( KBD_UnUsed63            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed63            ) = "KBD_UnUsed63"
Const As UByte KBD_UnUsed64            = &hD9   :   KBD_Keys( KBD_UnUsed64            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed64            ) = "KBD_UnUsed64"
Const As UByte KBD_UnUsed65            = &hDA   :   KBD_Keys( KBD_UnUsed65            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed65            ) = "KBD_UnUsed65"
Const As UByte KBD_UnUsed66            = &hE0   :   KBD_Keys( KBD_UnUsed66            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed66            ) = "KBD_UnUsed66"
Const As UByte KBD_UnUsed67            = &hE1   :   KBD_Keys( KBD_UnUsed67            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed67            ) = "KBD_UnUsed67"
Const As UByte KBD_UnUsed68            = &hE3   :   KBD_Keys( KBD_UnUsed68            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed68            ) = "KBD_UnUsed68"
Const As UByte KBD_UnUsed69            = &hE4   :   KBD_Keys( KBD_UnUsed69            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed69            ) = "KBD_UnUsed69"
Const As UByte KBD_UnUsed70            = &hE6   :   KBD_Keys( KBD_UnUsed70            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed70            ) = "KBD_UnUsed70"
Const As UByte KBD_UnUsed71            = &hE8   :   KBD_Keys( KBD_UnUsed71            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed71            ) = "KBD_UnUsed71"
Const As UByte KBD_UnUsed72            = &hE9   :   KBD_Keys( KBD_UnUsed72            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed72            ) = "KBD_UnUsed72"
Const As UByte KBD_UnUsed73            = &hEA   :   KBD_Keys( KBD_UnUsed73            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed73            ) = "KBD_UnUsed73"
Const As UByte KBD_UnUsed74            = &hEB   :   KBD_Keys( KBD_UnUsed74            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed74            ) = "KBD_UnUsed74"
Const As UByte KBD_UnUsed75            = &hEC   :   KBD_Keys( KBD_UnUsed75            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed75            ) = "KBD_UnUsed75"
Const As UByte KBD_UnUsed76            = &hED   :   KBD_Keys( KBD_UnUsed76            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed76            ) = "KBD_UnUsed76"
Const As UByte KBD_UnUsed77            = &hEE   :   KBD_Keys( KBD_UnUsed77            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed77            ) = "KBD_UnUsed77"
Const As UByte KBD_UnUsed78            = &hEF   :   KBD_Keys( KBD_UnUsed78            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed78            ) = "KBD_UnUsed78"
Const As UByte KBD_UnUsed79            = &hF0   :   KBD_Keys( KBD_UnUsed79            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed79            ) = "KBD_UnUsed79"
Const As UByte KBD_UnUsed80            = &hF1   :   KBD_Keys( KBD_UnUsed80            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed80            ) = "KBD_UnUsed80"
Const As UByte KBD_UnUsed81            = &hF2   :   KBD_Keys( KBD_UnUsed81            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed81            ) = "KBD_UnUsed81"
Const As UByte KBD_UnUsed82            = &hF3   :   KBD_Keys( KBD_UnUsed82            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed82            ) = "KBD_UnUsed82"
Const As UByte KBD_UnUsed83            = &hF4   :   KBD_Keys( KBD_UnUsed83            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed83            ) = "KBD_UnUsed83"
Const As UByte KBD_UnUsed84            = &hF5   :   KBD_Keys( KBD_UnUsed84            , 1 ) = KBD_NichtBelegt       :   KBD_Names( KBD_UnUsed84            ) = "KBD_UnUsed84"


Extern "windows" Lib "user32"
Declare Function GetAsyncKeyState (ByVal As Integer) As Short
declare function GetKeyState(byval as integer) as Short
Declare Function GetKeyboardState (ByVal As UByte Ptr) As Byte
Declare Function MapVirtualKey Alias "MapVirtualKeyW" (ByVal As UInteger, ByVal As UInteger) As UInteger
End Extern

Declare Function KBD_GetKeyType( ByVal Taste As UByte ) As Byte
Declare Function KBD_GetKeyTypString( ByVal Taste As UByte ) As String
Declare Function KBD_GetKeyName( ByVal Taste As UByte ) As String
Declare Function KBD_KeyUpdate() As UByte
Declare Function KBD_KeyAsyncUpdate() As UByte
Declare Function KBD_KeyNormal( ByVal Taste As UByte ) As UByte
Declare Function KBD_KeyHit( ByVal Taste As UByte ) As UByte
Declare Function KBD_KeyDown( ByVal Taste As UByte ) As UByte
Declare Function KBD_KeyUp( ByVal Taste As UByte ) As UByte
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Weazle25



Anmeldungsdatum: 04.11.2007
Beiträge: 18
Wohnort: Stralsund (Mecklenburg-Vorpommern)

BeitragVerfasst am: 26.02.2009, 04:07    Titel: Antworten mit Zitat

Teil 2

Code:


Function KBD_GetKeyType( ByVal Taste As UByte ) As Byte
   Return KBD_Keys( Taste, 1 )
End Function

Function KBD_GetKeyTypString( ByVal Taste As UByte ) As String
   Select Case KBD_Keys( Taste, 1 )
      Case KBD_UnbekannteTaste
         Return "Unbekannte Taste"
      Case KBD_NichtBelegt
         Return "Nicht belegte Taste"
      Case KBD_Zahl
         Return "Zahl"
      Case KBD_Buchstabe
         Return "Buchstabe"
      Case KBD_Functionstaste
         Return "Functionstaste"
      Case KBD_Zahlenblock
         Return "Zahlenblock"
      Case KBD_Cursorblock
         Return "Cursorblock"
      Case KBD_6erBlock
         Return "6er Block"
      Case KBD_Steuertaste
         Return "Steuertaste"
      Case KBD_Sonderzeichen
         Return "Sonderzeichen"
      Case KBD_Windowstaste
         Return "Windowstaste"
      Case KBD_Multimediataste
         Return "Multimediataste"
      Case KBD_Internettaste
         Return "Internettaste"
      Case KBD_Systemtaste
         Return "Systemtaste"
   End Select
End Function

Function KBD_GetKeyName( ByVal Taste As UByte ) As String
   Return KBD_Names( Taste )
End Function

Function KBD_KeyUpdate() As UByte
   For i As UShort = 0 To 255
      If KBD_Keys(i,0) = KBD_State_Normal Then
         'Von NORMAL zu HIT wechseln, wenn man anfängt zu drücken
         If GetKeyState( i ) < 0 Then KBD_Keys(i,0) = KBD_State_Hit EndIf
      ElseIf KBD_Keys(i,0) = KBD_State_Hit Then
         'Von HIT zu DOWN wechseln, wenn man gedrückt hält.
         'Von HIT zu UP wechseln, wenn man loslässt/gelassen hat.
         If GetKeyState( i ) < 0 Then KBD_Keys(i,0) = KBD_State_Down Else KBD_Keys(i,0) = KBD_State_Up EndIf
      ElseIf KBD_Keys(i,0) = KBD_State_Down Then
         'Von DOWN zu UP wechseln, wenn man loslässt. Sonst belassen.
         If GetKeyState( i ) >= 0 Then KBD_Keys(i,0) = KBD_State_Up EndIf
      ElseIf KBD_Keys(i,0) = KBD_State_Up Then
         'Von UP zu HIT wechseln, wenn man anfängt zu drücken
         'Von UP zu NORMAL wechseln wenn dauerhaft losgelassen
         If GetKeyState( i ) < 0 Then KBD_Keys(i,0) = KBD_State_Hit Else KBD_Keys(i,0) = KBD_State_Normal EndIf
      EndIf
   Next
   Return 1
End Function

Function KBD_KeyAsyncUpdate() As UByte
   For i As UShort = 0 To 255
      If KBD_Keys(i,0) = KBD_State_Normal Then
         'Von NORMAL zu HIT wechseln, wenn man anfängt zu drücken
         If GetAsyncKeyState( i ) <> 0 Then KBD_Keys(i,0) = KBD_State_Hit EndIf
      ElseIf KBD_Keys(i,0) = KBD_State_Hit Then
         'Von HIT zu DOWN wechseln, wenn man gedrückt hält.
         'Von HIT zu UP wechseln, wenn man loslässt/gelassen hat.
         If GetAsyncKeyState( i ) <> 0 Then KBD_Keys(i,0) = KBD_State_Down Else KBD_Keys(i,0) = KBD_State_Up EndIf
      ElseIf KBD_Keys(i,0) = KBD_State_Down Then
         'Von DOWN zu UP wechseln, wenn man loslässt. Sonst belassen.
         If GetAsyncKeyState( i ) = 0 Then KBD_Keys(i,0) = KBD_State_Up EndIf
      ElseIf KBD_Keys(i,0) = KBD_State_Up Then
         'Von UP zu HIT wechseln, wenn man anfängt zu drücken
         'Von UP zu NORMAL wechseln wenn dauerhaft losgelassen
         If GetAsyncKeyState( i ) <> 0 Then KBD_Keys(i,0) = KBD_State_Hit Else KBD_Keys(i,0) = KBD_State_Normal EndIf
      EndIf
   Next
   Return 1
End Function

Function KBD_KeyNormal( ByVal Taste As UByte ) As UByte
   If KBD_Keys(Taste,0) = KBD_State_Normal Then Return 1 Else Return 0
End Function

Function KBD_KeyHit( ByVal Taste As UByte ) As UByte
   If KBD_Keys(Taste,0) = KBD_State_Hit Then Return 1 Else Return 0
End Function

Function KBD_KeyDown( ByVal Taste As UByte ) As UByte
   If KBD_Keys(Taste,0) = KBD_State_Down Then Return 1 Else Return 0
End Function

Function KBD_KeyUp( ByVal Taste As UByte ) As UByte
   If KBD_Keys(Taste,0) = KBD_State_Up Then Return 1 Else Return 0
End Function

Sub KBD_Test()
   Screen 19, 8, 2
   Dim Mode As Byte = 0
   Do
      Cls
      If (KBD_KeyHit( KBD_CTRL ) = 1 and KBD_KeyDown( KBD_RETURN ) = 1) Or (KBD_KeyDown( KBD_CTRL ) = 1 and KBD_KeyHit( KBD_RETURN ) = 1) Then Mode = 1 - Mode
      If Mode = 0 Then
      KBD_KeyUpdate()
      ? "KBD_KeyUpdate() (mit Strg + Enter umschalten)"
      Else
      KBD_KeyAsyncUpdate()
      ? "KBD_KeyAsyncUpdate() (mit Strg + Enter umschalten)"
      EndIf
      
      ? "Drücken sie eine beliebige Taste (ESC zum Beenden)."
      For X As UShort = 0 To 255
         If KBD_KeyDown( X ) = 1 Then
            ? "ID:     " & Str( X ) & " (" & Hex( X ) & ")"
            ? "NAME:   " & KBD_GetKeyName( X )
            ? "Gruppe: " & KBD_GetKeyTypString( X )
         EndIf
      Next
      Flip
      Sleep 50, 1
   Loop Until KBD_KeyUp( KBD_ESCAPE ) = 1
End Sub

KBD_Test()


Das Ganze funzt auch wunderbar.
Nur bleiben noch folgende Probleme:

1.) Ich habe leider nur eine verkrüppelte Laptop-Tastatur bei der viele Tasten fehlen (z.B. 6er-Block, Nummern-Block und Media-Tasten) und die Tastendoppelbelegung die ich mit der [Fn]-Taste umschalten kann ist wenig vertrauenserweckend.
Ich hoffe daher das sich ein paar nette Kollegen finden werden die mal schauen ob alle Tasten richtig erkannt werden.

2.) Viele Tasten haben verwirrende Namen oder sind mir völlig unbekannt.
Vielleicht wäre jemand so nett und schaut mal nach ob alle Tasten richtig einsortiert wurden.

3.) Momentan werden die Tasten systemweit abgefragt.
Künftig soll es aber auch möglich sein zur Laufzeit zu wählen ob die Tasten programmweit oder systemweit abgefragt werden sollen.
Wie mache ich das bzw. wie kann ich herrausfinden ob mein Programm gerade aktiv ist (den Focus hat und im Vordergrund läuft)?

4.) Um bei Spielen die diese Lib verwenden das cheaten zu erschweren soll es auch möglich sein die Tasten für andere Programme zu sperren.
Aber wie geht das?


Danke schonmal für Eure Hilfe


Gruss
Weazle
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4699
Wohnort: ~/

BeitragVerfasst am: 26.02.2009, 15:42    Titel: Antworten mit Zitat

zu 1) Ich helfe gern, muss aber erst auf die Linux-Version warten. lächeln
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Weazle25



Anmeldungsdatum: 04.11.2007
Beiträge: 18
Wohnort: Stralsund (Mecklenburg-Vorpommern)

BeitragVerfasst am: 26.02.2009, 17:59    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
zu 1) Ich helfe gern, muss aber erst auf die Linux-Version warten. lächeln


Bin grad dabei OpenSuse 11.1 runterzuladen aber der Download dauert noch 4 Stunden. neutral
Hoffe mal das dort die Probleme mit dem Taktgeber bzw. Systemuhr behoben wurden sonst ist Essig mit Linux. verwundert

Andererseits wäre es vielleicht besser SDL zu nutzen.
Da gibts wenigstens für Win/Linux einheitliche Scancodes und ein vernünftiges Event-System ist auch schon drin.
Dafür hab ich dann wieder ne dll/so an der Backe was ich eigentlich vermeiden wollte. traurig


Gruss
Weazle
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz