zoukankan      html  css  js  c++  java
  • 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}
    //======================================================================
  • 相关阅读:
    vue列表排序实现中的this问题
    JavaScript:JSON 和 JS 对象
    vue项目设置每个页面的title
    webpack开发和生产两个环境的配置详解
    关于vuex的理解
    vue的路由配置
    js 的静态获取和动态获取
    7 Dockerfile指令详解 && VOLUME 指令
    HAProxy负载均衡保持客户端和服务器Session亲缘性的3种方式
    haproxy开启日志功能
  • 原文地址:https://www.cnblogs.com/yzryc/p/6277007.html
Copyright © 2011-2022 走看看