我现在要监视小键区的按键,但是当numlock打开和关闭时小键区对应的是两套键,如何使用户不管怎么按numlock,numlock都是打开的?谢谢

解决方案 »

  1.   

    检测: 
    Var 
      ks: TkeyBoardState; 
    begin 
     GetKeyboardState(ks); 
     if (ks[VK_NUMLOCK] = 1) then 
       ShowMessage('Num Lock is on.') 
     else 
       ShowMessage('Num Lock is off.'); 
     if (ks[VK_CAPITAL] = 1) then 
       ShowMessage('Caps Lock is on.') 
     else 
       ShowMessage('Caps Lock is off.'); 
    end; 切换: 
    keybd_event( VK_NUMLOCK, $45, KEYEVENTF_EXTENDEDKEY or 0,0 ); 
     keybd_event( VK_NUMLOCK, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); 
     keybd_event( VK_CAPITAL, $45, KEYEVENTF_EXTENDEDKEY or 0, 0 ); 
     keybd_event( VK_CAPITAL, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
      

  2.   

    procedure Tfrmmain.numlockon;
    var key:tkeyboardstate;
    begin
       GetKeyboardState(key);
       if key[VK_NUMLOCK]=0 then
       begin
        keybd_event( VK_NUMLOCK, $45, KEYEVENTF_EXTENDEDKEY or 0,0 ); 
        keybd_event( VK_NUMLOCK, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
       end; 
       //setKeyboardState(key);
    end;windows2000下没有用啊
      

  3.   

    呵呵,sixgj(轰炸机)大哥,高招呀