Difference between revisions of "MouseAndKeyInput"

From Lazarus wiki
m
m (Restrictions)
Line 17: Line 17:
  
 
===Restrictions===
 
===Restrictions===
* it is not recommended calling mouse and key input directly from events like OnClick, use Application.QueueAsyncCall instead
+
* it is not recommended calling mouse and key input directly from events like OnClick, use [[Asynchronous_Calls|Application.QueueAsyncCall]] instead
 
* do not forget to set back mouse button and key state after Down method with Up method
 
* do not forget to set back mouse button and key state after Down method with Up method
  
Line 26: Line 26:
 
* needs Xtst library
 
* needs Xtst library
 
* ALT key pressing is not supported
 
* ALT key pressing is not supported
 
  
 
===How to===
 
===How to===

Revision as of 10:05, 19 October 2017

English (en) français (fr)

About

MouseAndKeyInput package is a tool for cross-platform manipulation with mouse and key input. You can move mouse cursor to specified location, send clicks and do key presses. It is suitable for GUI testing or program control demonstration.

Location

lazarusdir/components/mouseandkeyinput

Author

Tom Gregorovic

License

GPL

Change Log

  • Version 0.1

Restrictions

  • it is not recommended calling mouse and key input directly from events like OnClick, use Application.QueueAsyncCall instead
  • do not forget to set back mouse button and key state after Down method with Up method

Carbon

  • pressing alpha chars is not supported

Gtk1/2

  • needs Xtst library
  • ALT key pressing is not supported

How to

With your project open: Go to the Lazarus install directory -> components -> mouseandkeyinput. There you will find: lazmouseandkeyinput.lpk. Open and compile the .lpk.

In your unit.pas add in Uses: MouseAndKeyInput ,LCLType

To simulate press of F1 from a button:

procedure TForm1.HelpButtonClick(Sender: TObject); begin

 KeyInput.Apply([ssCtrl]);
 KeyInput.Press(VK_F1);                // This will simulate press of F1 function key.
 KeyInput.Unapply([ssCtrl]); 

end;

VK- def's is found here: http://lazarus-ccr.sourceforge.net/docs/lcl/lcltype/index-2.html

Mouse control:

 MouseInput.Click(mbLeft,[],300,300);   // Left click on X:=300 , Y:=300
 MouseInput.Click(mbRight,[],1365,2);   // Right click on X:=1365 , Y:=2