https://foro.gambas-es.org/viewtopic.php?f=1&t=4766
-----------------------------------
v3ctor
Miercoles, 15 Julio 2015, 21:54

Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
buenas,

la pregunta lo dice todo, como se hace?
alguna idea?
algún ejemplo?


-----------------------------------
jguardon
Miercoles, 15 Julio 2015, 23:07

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
Quizás sea más fácil comprobar (o incluso forzar) el uso de minúsculas en un textbox, pero depende del uso que le vayas a dar.

Cuéntanos para qué necesitas detectar el estado de la tecla "Bloq Mayús" por si aplica la solución que te propongo.

Saludos


-----------------------------------
v3ctor
Miercoles, 15 Julio 2015, 23:16

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
simplemente quiero hacer como veo en algunas web o programas que lo hacen, que al activar el botón bloq mayúsculas se vea un botón y si esta desactivado no se vea.


-----------------------------------
jguardon
Miercoles, 15 Julio 2015, 23:31

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
Ah! Puesss, no sé si con el componente gb-desktop-x11 se puede hacer... creo haber leído algo sobre esto. 

Investigo y te cuento algo, si no se adelanta vuott (al que le gustan estos problemitas y que seguro soluciona con alguna función externa, jeje)

Saludos


-----------------------------------
vuott
Miercoles, 15 Julio 2015, 23:51

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
[quote user="jguardon" post="27402"] si no se adelanta vuott (al que le gustan estos problemitas y que seguro soluciona con alguna función externa, jeje)[/quote]

[i]Functio externa, ora pro nobis ![/i]    :roll:


-----------------------------------
vuott
Jueves, 16 Julio 2015, 01:58

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
" [i]Audivistis, functiones externae, gementem vocem meam atque flentem ![/i] "    :smile: 

Vamos a utilizar las funciones externas del API de SDL:
[code linenumbers=false syntax=gambas]Library "libSDL-1.2:0.11.4"

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("Imposible inicializar la libreria SDL !")

  sf = SDL_SetVideoMode(1, 1, 0, 0)
  If sf == 0 Then Error.Raise("Imposible configurar una modalidad video !")

  modifiers = SDL_GetModState()
  
  If modifiers And KMOD_CAPS Then Print "Tecla Bloq Mayúsculas: activada !"

  SDL_FreeSurface(sf)
  SDL_Quit()

End[/code]    :lol:


-----------------------------------
v3ctor
Miercoles, 24 Junio 2020, 18:34

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
buenas, en el proyecto photoManager de pilvalaquarus

encontré este código sencillo y efectivo!!

[code linenumbers=false syntax=gambas]Public Sub CheckCapsLock()                                                     'To check the Caps Lock state

     Dim sState As String                                                      'To store the 'Shell' output
     Dim siCap As Short                                                        'To store the 'Value' of Caps Lock state

     Shell "xset q | grep 'LED mask'" To sState                                'Shell command. Result is similar to: - 'auto repeat:  on    key click percent:  0    LED mask:  00000003'

     siCap = Right(Bin(Right(Trim(sState), 1)), 1)                             'Get the last binary value, see alternative code below

     If siCap Then                                                             'If siCap is not 0 then..
          LabelCaps.text = ("Caps Lock is ON")                                 'Add a message to the Form indicating the Caps Lock is on
     Else                                                                      'siCap must be 0
          LabelCaps.text = ""                                                  'Clear the Caps Lock message
     Endif

End[/code]


-----------------------------------
cogier
Jueves, 25 Junio 2020, 13:08

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
[quote]encontré este código sencillo y efectivo!![/quote]

El código es de mi programa "capslock" que está en la granja Gambas y [url=https://gambas.one/gambasfarm/?id=576&action=search]aquí.


-----------------------------------
gambafeliz
Jueves, 25 Junio 2020, 15:04

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
[quote user="cogier" post="48936"][quote]encontré este código sencillo y efectivo!![/quote]

El código es de mi programa "capslock" que está en la granja Gambas y [url=https://gambas.one/gambasfarm/?id=576&action=search]aquí.[/quote]

Hola, cogier

Sí, exacto. El código si que es efectivo, justamente es algo que se me ocurrió pero no sabia que comando seria válido para hacer lo que tu has hecho.

Perfecto :)

Gracias.

Nota: Lecheee, si el código de justo encima es igual al de cogier, WoW


-----------------------------------
v3ctor
Jueves, 25 Junio 2020, 16:42

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
[quote user="cogier" post="48936"][quote]encontré este código sencillo y efectivo!![/quote]

El código es de mi programa "capslock" que está en la granja Gambas y [url=https://gambas.one/gambasfarm/?id=576&action=search]aquí.[/quote]

a perdón por dar mal el crédito. Ahora que  veo este código reflexiono algo, cuando no sabemos hacer algo por código de gambas siempre se puede hacer con otros códigos ya hechos y resueltos estables etc en este caso el comando xset, tal vez haya mas.


-----------------------------------
vuott
Jueves, 25 Junio 2020, 21:34

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
[quote user="v3ctor" post="48939"]cuando no sabemos hacer algo por código de gambas siempre se puede hacer con otros códigos ya hechos y resueltos estables etc en este caso el comando xset, tal vez haya mas.[/quote]

...el problema es que [i]xset[/i] no es un codigo, si no un programa.   :roll:


-----------------------------------
v3ctor
Jueves, 25 Junio 2020, 22:23

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
[quote user="vuott" post="48942"][quote user="v3ctor" post="48939"]cuando no sabemos hacer algo por código de gambas siempre se puede hacer con otros códigos ya hechos y resueltos estables etc en este caso el comando xset, tal vez haya mas.[/quote]

...el problema es que [i]xset[/i] no es un codigo, si no un programa.   :roll:[/quote]

si es un programa, un comando, usando comandos externos (programas) se puede resolver casi todo, por lo menos hasta que uno no sepa como hacerlo con código gambas. En si es como el aprovechamiento de las librerías externas.


-----------------------------------
vuott
Jueves, 25 Junio 2020, 22:52

Re: Como Detectar Si La Tecla Bloq Mayúsculas Esta Activada O No?
-----------------------------------
[quote user="v3ctor" post="48943"] En si es como el aprovechamiento de las librerías externas.[/quote]
No estoy de acuerdo.
El uso de librerías externas significa usar [i]símbolos[/i] de esas librerías, es decir, recursos específicos que [u]no[/u] son programas "finitos", "completos"; pero que deben ser utilizados junto con otros recursos para realizar un programa completo.
Un recurso externo, por sí solo, no sirve de nada. Más recursos pueden servir para un propósito: para crear un [i]programa[/i].

Con las librerías externas puedes construir un programa.
Un programa es un [u]resultado final[/u] que [u]en sí mismo[/u] no es la base de otro programa.
En cambio, el programa, [u]por sí solo[/u], tiene un significado, una razón intrínseca que es el objetivo de su existencia.

En mi opinión el uso de [i]Shell[/i] [i][u]tiende[/u][/i] a reducir Gambas simplemente a una "interfaz".


