But the chalange is to trap any time the user presses the numlock, and put it
back on.

I think this is not the job of a user application,
but certainly not the job of GTWVT.

There are probably ways to hack this behavior on the
OS level.

Brgds,
Viktor




Przemyslaw Czerpak-2 wrote:

On Fri, 26 Sep 2008, Abeb wrote:
The trick is to trap the keypress of numlock ( or other control key)

And your received correct answer.

Sample code below. It uses two different methods to extract
cotnrol key state. But please remember that not all GTs
can support such functionality.

best regards,
Przemek


#include "inkey.ch"
#include "hbgtinfo.ch"
proc main()
  local cStatus, iStatus, nKey
  clear screen
  while ( nKey := inkey( 0.1 ) ) != K_ESC
     iStatus := hb_gtInfo( HB_GTI_KBDSHIFTS )
     cStatus := ""
     cStatus += iif( HB_BITAND( iStatus, HB_GTI_KBD_SHIFT ) != 0, ;
                    "SHIFT ", "      " )
     cStatus += iif( HB_BITAND( iStatus, HB_GTI_KBD_CTRL ) != 0, ;
                    "CTRL ", "     " )
     cStatus += iif( HB_BITAND( iStatus, HB_GTI_KBD_ALT ) != 0, ;
                    "ALT ", "    " )
cStatus += iif( HB_BITAND( iStatus, HB_GTI_KBD_SCROLOCK ) != 0, ;
                    "SCRLOCK ", "        " )
     cStatus += iif( HB_BITAND( iStatus, HB_GTI_KBD_NUMLOCK ) != 0, ;
                    "NUMLOCK ", "        " )
cStatus += iif( HB_BITAND( iStatus, HB_GTI_KBD_CAPSLOCK ) != 0, ;
                    "CAPSLOCK ", "         " )
     cStatus += iif( HB_BITAND( iStatus, HB_GTI_KBD_INSERT ) != 0, ;
                    "INSERT ", "       " )
     @ 1, 0 say cStatus

     cStatus := ""
     cStatus += iif( KSETINS(), "INS ", "    " )
     cStatus += iif( KSETCAPS(), "CAPS ", "     " )
     cStatus += iif( KSETNUM(), "NUM ", "    " )
     cStatus += iif( KSETSCROLL(), "SCROLL ", "       " )
     @ 2, 0 say cStatus
     if nKey==asc("C") .or. nKey==asc("c")
        KSETCAPS(!KSETCAPS())
     elseif nKey==asc("I") .or. nKey==asc("i")
        KSETINS(!KSETINS())
     elseif nKey==asc("N") .or. nKey==asc("n")
        KSETNUM(!KSETNUM())
     elseif nKey==asc("S") .or. nKey==asc("s")
        KSETSCROLL(!KSETSCROLL())
     endif
  enddo
return
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour



--
View this message in context: 
http://www.nabble.com/how-to-force-Num-Lock-on---gtwvt-tp19691006p19713171.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to