Главная страница | назад





Article #15930: Detecting if the PrintScreen key has been pressed

 Question and Answer Database

FAQ930D.txt   Detecting if the PrintScreen key has been pressed
Category   :Windows API
Platform    :All
Product    :All 32 bit  

Question:
How can I tell if the PrintScreen key has been pressed?

Answer:
The PrintScreen system key is not processed during the TForm
keydown event. The following example tests if the PrintScreen key has
been pressed by calling the Windows API function GetAsyncKeyState()
during the Application.OnIdle event.

Example:

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure AppIdle(Sender: TObject; var Done: Boolean);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnIdle := AppIdle;
end;

procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean);
begin
  if GetAsyncKeyState(VK_SNAPSHOT) <> 0 then
    Form1.Caption := 'SnapShot';
  Done := True;
end;


7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99