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


本文整理自网络,侵删。

 

这段Delphi代码可以用来控制键盘上的某一个键的按下和释放操作,比如你希望从软件模拟按下Print Screen按键对屏幕截图,可以使用这个程序。

 

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}

//======================================================================

//该代码片段来自于: http://www.sharejs.com/codes/delphi/8739

相关阅读 >>

Delphi 控制台程序获取系统信息

Delphi异常信息捕捉

Delphi radiogroup 组件基本用法

Delphi 获取系统所有磁盘盘符

Delphi 保存图片到数据库

winapi 字符及字符串函数(8): ischarupper - 是否是个大写字母

Delphi 线程同步(线程安全)

Delphi 生成指定范围和个数的不重复的随机整数

Delphi xe5 unicodestring的由来

Delphi dbgrideh 的分组统计 datagrouping

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...