本文整理自网络,侵删。
这段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 xe8在firemonkey tlistbox中显示图像
Delphi windows 编程[11] - wm_size 消息
更多相关阅读请进入《Delphi》频道 >>