• Delphi 操作键盘按下和释放操作


    Unit Unit1;
    
    Interface
    
    Uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
    
    Type
       TForm1 = Class(TForm)
          ReleaseScrollLockBtn: TButton;
          SetScrollLockBtn: TButton;
          Procedure SetScrollLockBtnClick(Sender: TObject);
          Procedure ReleaseScrollLockBtnClick(Sender: TObject);
       Private
          { Private declarations }
       Public
          { Public declarations }
       End;
    
    Var
       Form1 : TForm1;
    
    Implementation
    
    {$R *.DFM}
    
    //----------------------------------------------------------------------
    // The Numlock key can be pressed this way under NT but NOT under W95!
    // The ScrollLock and CapsLock can be pressed this way under NT and W95
    // as well.
    // You can also simulate a PrintScreen (SnapShot).
    // See the Delphi help file for soft-pressing this key.
    // (Set the blinking cursor in the word: "keybd_event" and press: "F1")
    //----------------------------------------------------------------------
    Procedure SetNumLock(Bo : Boolean);
    
    Var
       keyState : TKeyBoardState;
    
    Begin
    GetKeyboardstate(keyState);
    // keyState[VK_SCROLL] = 0 means the led is off
    // keyState[VK_SCROLL]  0 means the led is on
    If ( (Bo = True) and (keyState[VK_SCROLL] = 0) ) or
       ( (Bo = False) and (keyState[VK_SCROLL]  0) ) then
          Begin
          // Simulate a depress
          keybd_event(VK_SCROLL,45,KEYEVENTF_EXTENDEDKEY,0);
          // Simulate a release
          keybd_event(VK_SCROLL,45,KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP,0);
          End;
    End;
    //----------------------------------------------------------------------
    Procedure TForm1.SetScrollLockBtnClick(Sender: TObject);
    
    Begin
    SetNumLock(TRUE);
    End;
    //----------------------------------------------------------------------
    Procedure TForm1.ReleaseScrollLockBtnClick(Sender: TObject);
    
    Begin
    SetNumLock(FALSE);
    End;
    //----------------------------------------------------------------------
    End. {of Unit1}
    //======================================================================
  • 相关阅读:
    3164 质因数分解
    codevs3249搭积木
    codevs 2964公共素数因数
    爱改名的小融1
    单链表基础练习
    并查集(union-find sets)
    string类中字符的大小写转换
    蒜头君学英语--set()练习
    打印锯齿矩阵
    堆积木
  • 原文地址:https://www.cnblogs.com/yzryc/p/6277007.html
Copyright © 2020-2023  润新知