Help Center
Help CenterFreeBASIC

GetKeyfunction

Returns the ascii code of the first key in the keyboard buffer

Syntax

Declare Function GetKey ( ) As Long

Return value


The value of the ascii code returned.

Description


It returns the ascii code of the first key in the keyboard buffer. The key is removed from the buffer. If no key is present, GetKey waits for it.

For extended keys (returning two characters), the extended code is returned in the first byte (255), and the scancode for keyboard is returned in the second byte (the third and fourth bytes always being null at least in console mode).

For FB's built-in functionality of getting keyboard input, see Keyboard Input (Basics).

WARNING: In graphics mode and depending on the key pressed, Getkey may not always return the exact same value as in console mode (for a non-extended key, the most significant bit of the ascii code byte may be propagated to the higher 3 bytes of the return value, such as a sign bit).
For a compatible code of the 2 screen modes, see the example below.

The key read is not echoed to the screen.

For a keyword not stopping the program if no key is at the buffer see Inkey or MultiKey.

Remarks

Usage


result = GetKey

Dialect Differences


  • Not available in the -lang qb dialect unless referenced with the alias __Getkey.

Differences from QB


  • New to FreeBASIC

See also


Example


Dim As Long foo

Do

    foo = GetKey

    Print "total return: " & foo

    

    If( foo > 255 ) Then

        Print "extended code: " & (foo And &hff)

        Print "regular code: " & (foo Shr 8)

    Else

        Print "regular code: " & (foo And &hff)

    End If

    Print 

Loop Until foo = 27

Reference

  • Documented in KeyPgGetkey.html