# Input methods

> Input actions require you or the robot to directly interact with an opened application or web page. There are three types of input methods for click and type actions, that differ in terms of compatibility and capability.

Input actions require you or the robot to directly interact with an opened application or web page. There are three types of input methods for click and type actions, that differ in terms of compatibility and capability.

We generally recommend the **Simulate** method (**SimulateType**, **SimulateClick**, **SimulateHover** for classic activities) as it is the fastest and works in the background, but only if you do not need to send special keyboard shortcuts. If this does not work for you, try the **Window Messages** method (**SendWindowMessages** for classic activities) and then the default one, as it is the slowest.

| Capability method | Compatibility | Background execution | Speed | Hotkey support | Auto empty field | Design experience |
| --- | --- | --- | --- | --- | --- | --- |
| **Hardware Events** | 100% | no | medium | yes | no | `Classic`/`Modern` |
| **Window Messages** | 80% | yes | medium | yes | no | `Classic`/`Modern` |
| **Simulate** | 99% - web apps  60% - desktop apps | yes | high | no | yes | `Classic`/`Modern` |
| [Chromium API](https://docs.uipath.com/activities/other/latest/ui-automation/chromium-api) | 100% - Chrome, Edge browsers | yes | medium | yes | yes | `Modern` |

:::note
When the browser is started with **Chromium API**, a ribbon shows up stating that the browser started in debug mode. This message does not show up if the extension is installed via [Group Policies that affect the UiPath Extension for Edge](https://docs.uipath.com/studio/standalone/2023.10/user-guide/edge-group-policies#group-policies-that-affect-the-uipath-extension-for-edge).
:::
:::note
For non-Chromium browsers, the input method defaults to **Hardware Events**.
:::

For the **Use Application/Browser** activity, the **Background** input method runs actions in the background and tries to use either **Simulate** or **Chromium API** where possible, while complex activities (image, native text) run as usual, in the foreground.

![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-315921-8d617d4c.webp)

For classic activities, the input method can be changed at any point from the **Properties** panel of the selected activity. If the **Simulate** or **SendWindowMessages** check boxes are not selected, then the default method is applied.

![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-166616-e1f45b89.webp)

The default method simulates a click, a type, or a hover action with the help of the hardware driver, while the **Simulate** method uses the technology of the target application. The **Window Messages** works by sending a specific message directly to the target application.

## Decision flowchart

To understand the differences between these input methods and when to use each of them, you can follow this decision flowchart.

![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-447739-49f38ac6.webp)
