- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Detecting if the PrintScreen key has been pressed

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;




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile