Skip to main content
St Louis

Back to all posts

How to Send Mouse Click In Powershell?

Published on
5 min read
How to Send Mouse Click In Powershell? image

Best Automation Tools to Buy in November 2025

1 Klein Tools 32581 4-in-1 Electronics Screwdriver Set with 2 Slotted, 2 Phillips Precision Machined Bits, Ideal for Terminal Blocks

Klein Tools 32581 4-in-1 Electronics Screwdriver Set with 2 Slotted, 2 Phillips Precision Machined Bits, Ideal for Terminal Blocks

  • NON-MAGNETIC TIPS ENSURE PRECISION FOR DELICATE ELECTRONIC TASKS.
  • PREMIUM SPIN CAP ALLOWS FOR OPTIMAL CONTROL AND PRECISE FASTENING.
  • LIGHTWEIGHT DESIGN AND CUSHION-GRIP HANDLE ENHANCE COMFORT AND TORQUE.
BUY & SAVE
$11.97
Klein Tools 32581 4-in-1 Electronics Screwdriver Set with 2 Slotted, 2 Phillips Precision Machined Bits, Ideal for Terminal Blocks
2 XHF 1700 PCS Ferrule Crimping Tool Kit with Hexagonal Ferrule Crimper Insulated Wire End Ferrules Terminals

XHF 1700 PCS Ferrule Crimping Tool Kit with Hexagonal Ferrule Crimper Insulated Wire End Ferrules Terminals

  • ACHIEVE FLAWLESS CRIMPS WITH OUR SIX-SERRATED CRIMPING SURFACE!

  • 1700PCS FERRULES OFFERED IN 7 SIZES FOR VERSATILE APPLICATIONS!

  • HIGH-QUALITY COPPER TERMINALS, CE ROHS COMPLIANT FOR SAFETY!

BUY & SAVE
$15.99 $19.99
Save 20%
XHF 1700 PCS Ferrule Crimping Tool Kit with Hexagonal Ferrule Crimper Insulated Wire End Ferrules Terminals
3 Terminal Pin Removal Tool Kit 82 Pcs Depinning Electrical Connector Pin Extractor Tool Set Wire Terminal Release for Automotive Car Household Devices - Black

Terminal Pin Removal Tool Kit 82 Pcs Depinning Electrical Connector Pin Extractor Tool Set Wire Terminal Release for Automotive Car Household Devices - Black

  • COMPREHENSIVE KIT: 82 TOOLS FOR ALL YOUR PIN REMOVAL NEEDS, VERSATILE USE.

  • SAFETY FIRST: INCLUDED PROTECTIVE CASE ENSURES SAFE STORAGE AND PORTABILITY.

  • DURABLE QUALITY: HIGH-QUALITY STAINLESS STEEL TOOLS FOR LONG-LASTING PERFORMANCE.

BUY & SAVE
$11.98
Terminal Pin Removal Tool Kit 82 Pcs Depinning Electrical Connector Pin Extractor Tool Set Wire Terminal Release for Automotive Car Household Devices - Black
4 Slice Mini Box Cutter | Manual Retracting | Safe Ceramic Box Cutter Lasting 11x Longer than Metal | Box Opener | 1 Pack | Sage

Slice Mini Box Cutter | Manual Retracting | Safe Ceramic Box Cutter Lasting 11x Longer than Metal | Box Opener | 1 Pack | Sage

  • FINGER-FRIENDLY DESIGN: SAFELY CUT PACKAGES WITHOUT RISKING INJURY.
  • VERSATILE CUTTING: PERFECT FOR BOXES, FOOD PACKAGING, AND MORE.
  • DURABLE BLADE: LASTS 11X LONGER THAN METAL, NEVER RUSTS!
BUY & SAVE
$9.49
Slice Mini Box Cutter | Manual Retracting | Safe Ceramic Box Cutter Lasting 11x Longer than Metal | Box Opener | 1 Pack | Sage
5 WGGE Wire Cutters Precision Flush Pliers with Supplementary Stripping, Cutting Pliers, Handy and Slim Diagonal Cutters, Ultra Sharp Wire Cutter, 10-20AWG wire stripper (6 inch)

WGGE Wire Cutters Precision Flush Pliers with Supplementary Stripping, Cutting Pliers, Handy and Slim Diagonal Cutters, Ultra Sharp Wire Cutter, 10-20AWG wire stripper (6 inch)

  • HIGH-CARBON STEEL ENSURES DURABILITY AND LONG-LASTING PERFORMANCE.
  • ERGONOMIC NON-SLIP HANDLE REDUCES FATIGUE FOR COMFORTABLE USE.
  • SPRING-LOADED DESIGN ALLOWS EASY ONE-HANDED OPERATION FOR EFFICIENCY.
BUY & SAVE
$7.99
WGGE Wire Cutters Precision Flush Pliers with Supplementary Stripping, Cutting Pliers, Handy and Slim Diagonal Cutters, Ultra Sharp Wire Cutter, 10-20AWG wire stripper (6 inch)
6 HURRICANE 1000V Insulated Electrician Screwdriver Set, All-in-One Premium Professional 13-Pieces CR-V Magnetic Phillips Slotted Pozidriv Torx Screwdriver

HURRICANE 1000V Insulated Electrician Screwdriver Set, All-in-One Premium Professional 13-Pieces CR-V Magnetic Phillips Slotted Pozidriv Torx Screwdriver

  • VDE & GS CERTIFIED: ENSURES 1000V SAFETY FOR PROFESSIONAL USE.
  • COMPREHENSIVE SET: 11 INSULATED TOOLS FOR VARIED APPLICATIONS.
  • DURABLE STORAGE: IMPACT-RESISTANT BOX PROTECTS AND PROLONGS TOOL LIFE.
BUY & SAVE
$21.89 $23.69
Save 8%
HURRICANE 1000V Insulated Electrician Screwdriver Set, All-in-One Premium Professional 13-Pieces CR-V Magnetic Phillips Slotted Pozidriv Torx Screwdriver
7 PLATATO Push to Connect Fittings Disconnect Tong Tool for Removing Push-fit Pneumatic Fittings 1/4”, 5/16” (6mm, 8mm) Quick Connect Air Hose Fittings Removal Tool

PLATATO Push to Connect Fittings Disconnect Tong Tool for Removing Push-fit Pneumatic Fittings 1/4”, 5/16” (6mm, 8mm) Quick Connect Air Hose Fittings Removal Tool

  • QUICKLY DISCONNECT FITTINGS IN TIGHT SPACES WITH EASE.
  • ONE-HAND OPERATION FOR ULTIMATE CONVENIENCE AND EFFICIENCY.
  • DURABLE, ERGONOMIC DESIGN REDUCES HAND FATIGUE DURING USE.
BUY & SAVE
$20.99
PLATATO Push to Connect Fittings Disconnect Tong Tool for Removing Push-fit Pneumatic Fittings 1/4”, 5/16” (6mm, 8mm) Quick Connect Air Hose Fittings Removal Tool
8 Short Pro Tool – 24V Short Circuit Finder for HVAC & Low Voltage Systems – Quick Short Detection with Alligator Clips

Short Pro Tool – 24V Short Circuit Finder for HVAC & Low Voltage Systems – Quick Short Detection with Alligator Clips

  • QUICK SHORT CIRCUIT DETECTION WITH INDICATOR LIGHT FOR 24VAC SYSTEMS.
  • EASY ALLIGATOR CLIP CONNECTION FOR RELIABLE HVAC DIAGNOSTICS.
  • DURABLE, HIGH-QUALITY CONSTRUCTION BACKED BY A ONE-YEAR WARRANTY.
BUY & SAVE
$15.99
Short Pro Tool – 24V Short Circuit Finder for HVAC & Low Voltage Systems – Quick Short Detection with Alligator Clips
+
ONE MORE?

To send a mouse click in PowerShell, you can use the built-in SendInput function from the user32.dll library. This function allows you to simulate mouse clicks by sending input events directly to the system. You will need to create a couple of structures to define the input events, such as the MOUSEINPUT structure for mouse input.

First, import the necessary functions from the user32.dll library using the Add-Type cmdlet. Then, create the MOUSEINPUT structure to define the parameters of the mouse click event, such as the x and y coordinates of the click, the type of mouse event, and the flags associated with the event. Finally, use the SendInput function to send the mouse input event to the system, which will simulate a mouse click at the specified coordinates on the screen.

Keep in mind that sending mouse clicks programmatically in PowerShell may not be the most reliable or user-friendly way to interact with applications. It is recommended to use other automation tools or frameworks, such as AutoIt or Selenium, for more robust and versatile automation tasks involving mouse clicks.

How to create a mouse click function in Powershell?

You can create a mouse click function in Powershell using the following steps:

  1. Import the necessary .NET assemblies:

Add-Type -AssemblyName System.Windows.Forms

  1. Create a function that simulates a mouse click at a specified position on the screen:

function Click-Mouse { param( [int]$X, [int]$Y )

$mouseEvent = \[System.Windows.Forms.MouseEventArgs\]::New(\[System.Windows.Forms.MouseButtons\]::Left, 1, $X, $Y, 0)
\[System.Windows.Forms.Control\]::DoMouseClick($mouseEvent)

}

  1. Call the function with the desired X and Y coordinates to perform a mouse click at that position:

Click-Mouse -X 100 -Y 100

  1. You can also use the following function to move the mouse cursor to a specific position before clicking:

function Move-Mouse { param( [int]$X, [int]$Y )

\[System.Windows.Forms.Cursor\]::Position = New-Object System.Drawing.Point($X, $Y)

}

  1. Use the Move-Mouse function to move the mouse cursor to the desired position before calling the Click-Mouse function:

Move-Mouse -X 100 -Y 100 Click-Mouse -X 100 -Y 100

By following these steps, you can create a mouse click function in Powershell that simulates a mouse click at a specified position on the screen.

How to execute a mouse click command in Powershell?

To execute a mouse click command in Powershell, you can use the Add-Type cmdlet to add a definition for the mouse_event function from the User32.dll library. Here's an example code snippet that demonstrates how to do this:

Add-Type @" using System; using System.Runtime.InteropServices;

public class Mouse
{
    \[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)\]
    public static extern void mouse\_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);

    public const uint MOUSEEVENTF\_LEFTDOWN = 0x0002;
    public const uint MOUSEEVENTF\_LEFTUP = 0x0004;
}

"@

Define the coordinates where you want to click (e.g. 100, 100)

$x = 100 $y = 100

Perform a mouse left click at the specified coordinates

[Mouse]::mouse_event([Mouse]::MOUSEEVENTF_LEFTDOWN, $x, $y, 0, 0) Start-Sleep -Milliseconds 100 [Mouse]::mouse_event([Mouse]::MOUSEEVENTF_LEFTUP, $x, $y, 0, 0)

In the above code snippet, we first use Add-Type to define the Mouse class with the mouse_event function for simulating mouse clicks. We then specify the coordinates where we want to click and use the MOUSEEVENTF_LEFTDOWN and MOUSEEVENTF_LEFTUP flags to simulate a left mouse button click at those coordinates. Make sure to adjust the coordinates and timing as needed for your specific use case.

What is the function of the SendMessage method in sending mouse clicks in Powershell?

The SendMessage method in PowerShell is used to send a specific message to a window or control in order to perform a specific action. When sending mouse clicks, the SendMessage method can be used to simulate a mouse click event on a specific window or control by sending the appropriate message to trigger the desired action. This can be useful for automating tasks that require interacting with GUI elements in applications.

How to send a left mouse click in Powershell?

To send a left mouse click in PowerShell, you can use the .NET framework's SendInput function. Here is an example code snippet to send a left mouse click using PowerShell:

Add-Type -TypeDefinition @" using System; using System.Runtime.InteropServices;

public class MouseInput {
    \[Flags\]
    public enum MouseEventFlags : uint {
        LEFTDOWN = 0x0002,
        LEFTUP = 0x0004,
        ABSOLUTE = 0x8000
    }

    \[StructLayout(LayoutKind.Sequential)\]
    public struct INPUT {
        public uint type;
        public MOUSEINPUT mi;
    }

    \[StructLayout(LayoutKind.Sequential)\]
    public struct MOUSEINPUT {
        public int dx;
        public int dy;
        public uint mouseData;
        public MouseEventFlags dwFlags;
        public uint time;
        public UIntPtr dwExtraInfo;
    }

    \[DllImport("user32.dll", SetLastError = true)\]
    public static extern uint SendInput(uint nInputs, INPUT\[\] pInputs, int cbSize);
}

"@

$mouseEvent = [MouseInput.MouseEventFlags]::LEFTDOWN -bor [MouseInput.MouseEventFlags]::LEFTUP $input = New-Object MouseInput.INPUT $input.type = 0 $input.mi.dwFlags = $mouseEvent

$inputs = New-Object MouseInput.INPUT[] 1 $inputs[0] = $input

[MouseInput]::SendInput(1, $inputs, [System.Runtime.InteropServices.Marshal]::SizeOf($inputs[0]))

You can run this code in PowerShell to simulate a left mouse click. Make sure to run PowerShell with administrative privileges to be able to send input events to the system. Note that this code will only work on Windows operating systems.