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 控制memo1滚动条

Delphi 判断正在运行的设备是iphone还是ipad

Delphi 取出鼠百标点击的 stringgrid 中某单度元格的值

Delphi winapi: extracticon - 获取 exe、dll 或 ico 文件中的图标

获取剪贴板文字内容的代码

Delphi版inf方式加载驱动

Delphi winsoft comport for android usb

Delphi 中的包开发

Delphi webservices传base64字串

Delphi tlistview按指定列排序

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



打赏

取消

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

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

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

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

评论

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