Skip to content

A library for simulating keyboard and mouse input with drivers

License

Notifications You must be signed in to change notification settings

Chaoses-Ib/IbInputSimulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IbInputSimulator

A library for simulating keyboard and mouse input with drivers.

Download

Releases

Supported drivers

  • Logitech Gaming Software

    No Logitech hardware required. However, in the new versions of LGS, the mouse driver has been removed (#8). You can install v9.02.65 to make the mouse driver available.

    e.g. IbSendInit("Logitech")

  • Logitech G HUB

    No Logitech hardware required. However, in the new versions of G HUB, the mouse driver has been removed (#8). Unfortunately, there is currently no known way to install an old version.

    e.g. IbSendInit("Logitech")

  • Razer Synapse 3

    In the new versions of Razer Synapse, Razer hardware is required to make the driver available. The old versions do not require Razer hardware, but the online installer of Razer Synapse can only install the newest version. To install an old version manually, see #7 for details.

    e.g. IbSendInit("Razer")

  • MouClassInputInjection

    e.g. IbSendInit("MouClassInputInjection", 1, process_id)

  • DD Virtual Mouse & Virtual Keyboard

    May cause a blue screen; difficult to uninstall cleanly; need network.

    To use it, put the DLL (DD94687.64.dll/DD64.dll/DDHID64.dll) with your script file, and then:

    IbSendInit("DD")

    or specify the DLL path when call IbSendInit:

    IbSendInit("DD", 1, "C:\SomeDir\DD64.dll")
  • EDI (private, not for sale)

Software compatibility

Software SendInput Logitech Razer MCII DD EDI DM Other
Blade & Soul (Korean) ✔️ ✔️ ✔️ ❌ SendInput hook
Genshin High

For SendInput, software with High indicates that the target process usually has a high integrity level, which may block SendInput due to UIPI. To put it simply, this means that you need to run the input simulator with administrator privileges.

Supported languages

AutoHotkey

AutoHotkey v2 AutoHotkey v1
; Run Notepad, type "Hello world!"
; and then select all text by mouse.

#Include "IbInputSimulator.ahk"

IbSendInit()  ; IbSendInit("AnyDriver", 1)

Send("#r")
WinWaitActive("ahk_class #32770")
Send("notepad`n")

WinWaitActive("ahk_exe notepad.exe")
Send("Hello world{!}")
Sleep(100)
MouseClickDrag("Left", 5, 5, 150, 50)
; Run Notepad, type "Hello world!"
; and then select all text by mouse.

#Include %A_ScriptDir%
#Include IbInputSimulator.ahk

IbSendInit() ; IbSendInit("AnyDriver", 1)

Send #r
WinWaitActive, ahk_class #32770
Send notepad`n

WinWaitActive, ahk_exe notepad.exe
Send Hello world{!}
Sleep 100
CoordMode, Mouse, Client
MouseClickDrag, Left, 5, 5, 150, 50

Build

vcpkg:

vcpkg install detours rapidjson --triplet=x64-windows-static

CMake (or open the directory with Visual Studio and config it manually):

mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE="C:\...\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build . --config Release

For the test you also need:

vcpkg install boost-test fmt

And add -DBUILD_TESTING=ON when calling cmake .. .

See also

Credits

Sponsors:

Date Sponsor Comment
2022-04-03 任性 MouClassInputInjection
2023-04-22 任性 Logitech
2023-02-28 -
2021-08-28 任性 Razer