Sapere via codice se il tasto 'Blocco Maiuscole' è attivo
Vai alla navigazione
Vai alla ricerca
E' possibile sapere mediante il codice, se il tasto Blocco maiuscole è attivo, utilizzando alcune risorse della libreria SDL.
Per poter utilizzare tali risorse sarà necessario installare nel sistema ed utilizzare nell'applicazione Gambas la libreria condivisa: "libSDL-1.2.so.1.2.68 ".
Mostriamo un semplice codice, nel quale se è stato premuto il tasto 'Blocco Maiuscole', allora ciò verrà comunicato in console/terminale:
Library "libSDL-1.2:1.2.68"
Private Const KMOD_CAPS As Integer = 8192
' int SDL_Init(Uint32 flags)
' Initialize the SDL library.
Private Extern SDL_Init(flags As Integer) As Integer
' SDL_Surface *SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags)
' Set up a video mode with the specified width, height and bits-per-pixel.
Private Extern SDL_SetVideoMode(width As Integer, height As Integer, bitsperpixel As Integer, flags As Integer) As Pointer
' SDL_Keymod SDLCALL SDL_GetModState(void)
' Get the current key modifier state for the keyboard.
Private Extern SDL_GetModState() As Integer
' void SDL_FreeSurface(SDL_Surface* surface)
' Free an RGB surface.
Private Extern SDL_FreeSurface(surface As Pointer)
' void SDL_Quit(void)
' Clean up all initialized subsystems.
Private Extern SDL_Quit()
Public Sub Main()
Dim i, modifiers As Integer
Dim sf As Pointer
i = SDL_Init(0)
If i <> 0 Then Error.Raise("Impossibile inizializzare la libreria SDL !")
sf = SDL_SetVideoMode(1, 1, 0, 0)
If sf == 0 Then Error.Raise("Impossibile impostare una modalità video !")
modifiers = SDL_GetModState()
If modifiers And KMOD_CAPS Then Print "Tasto 'Blocco Maiuscole': \e[31mattivo \e[0m!"
' Va in chiusura:
SDL_FreeSurface(sf)
SDL_Quit()
End