How to inject/simulate mouse clicks?

Not working, but this one is:

    UFUNCTION(BlueprintCallable, Category = "Utility")
        static void SimulateLeftMouseButtonClick(bool bButtonDown)
    {
        FSlateApplication& SlateApp = FSlateApplication::Get();
        FPointerEvent MouseEvent(
            0, 
            SlateApp.CursorPointerIndex,
            SlateApp.GetCursorPos(),
            SlateApp.GetLastCursorPos(),
            SlateApp.GetPressedMouseButtons(),
            EKeys::LeftMouseButton, 
            0, 
            SlateApp.GetPlatformApplication()->GetModifierKeys()
        );

        if (bButtonDown)
        {
            SlateApp.ProcessMouseButtonDownEvent(nullptr, MouseEvent);
        }
        else
        {
            SlateApp.ProcessMouseButtonUpEvent(MouseEvent);
        }
    }

Thank me later.

8 Likes