Skip to content

Driver API Documentation

API List

Driver Management APIs

Function NameParametersReturn TypeDescriptionExample
LoadNTDriverchar* lpszDriverName, char* lpszDriverPathBOOLLoad NT driverLoadNTDriver("lykeys", "lykeys.sys")
UnloadNTDriverchar* szSvrNameBOOLUnload NT driverUnloadNTDriver("lykeys")
SetHandlevoidBOOLSet driver handleSetHandle()
GetDriverHandlevoidHANDLEGet driver handleGetDriverHandle()
GetDriverStatusvoidDEVICE_STATUSGet driver statusGetDriverStatus()
GetLastCheckTimevoidULONGLONGGet last check timeGetLastCheckTime()

Keyboard Operation APIs

Function NameParametersReturn TypeDescriptionExample
KeyDownUSHORT VirtualKeyvoidSimulate key downKeyDown(0x41) // Press A
KeyUpUSHORT VirtualKeyvoidSimulate key upKeyUp(0x41) // Release A

Mouse Operation APIs

Function NameParametersReturn TypeDescriptionExample
MouseMoveRELATIVELONG dx, LONG dyvoidMouse relative moveMouseMoveRELATIVE(10, 20)
MouseMoveABSOLUTELONG dx, LONG dyvoidMouse absolute moveMouseMoveABSOLUTE(100, 200)
MouseLeftButtonDownvoidvoidLeft button downMouseLeftButtonDown()
MouseLeftButtonUpvoidvoidLeft button upMouseLeftButtonUp()
MouseRightButtonDownvoidvoidRight button downMouseRightButtonDown()
MouseRightButtonUpvoidvoidRight button upMouseRightButtonUp()
MouseMiddleButtonDownvoidvoidMiddle button downMouseMiddleButtonDown()
MouseMiddleButtonUpvoidvoidMiddle button upMouseMiddleButtonUp()
MouseXButton1DownvoidvoidX1 button downMouseXButton1Down()
MouseXButton1UpvoidvoidX1 button upMouseXButton1Up()
MouseXButton2DownvoidvoidX2 button downMouseXButton2Down()
MouseXButton2UpvoidvoidX2 button upMouseXButton2Up()
MouseWheelUpUSHORT wheelDeltavoidWheel scroll upMouseWheelUp(120)
MouseWheelDownUSHORT wheelDeltavoidWheel scroll downMouseWheelDown(120)

Usage Guide

Initialize Driver

c
// Load driver
LoadNTDriver("lykeys", "lykeys.sys");

// Set handle
SetHandle();

// Check status
DEVICE_STATUS status = GetDriverStatus();
if (status == DEVICE_STATUS_READY) {
    // Driver is ready
}

Keyboard Operation

c
// Press A key
KeyDown(0x41);

// Wait for a while
Sleep(100);

// Release A key
KeyUp(0x41);

Mouse Operation

c
// Move mouse
MouseMoveRELATIVE(10, 20);

// Click left button
MouseLeftButtonDown();
Sleep(50);
MouseLeftButtonUp();

// Scroll mouse wheel
MouseWheelUp(120);

Notes

  1. You must call LoadNTDriver to load the driver before use
  2. After loading the driver, you need to call SetHandle to get the device handle
  3. It's recommended to check the driver status with GetDriverStatus before all operations
  4. Call UnloadNTDriver to unload the driver before the program exits
  5. Mouse movement coordinates use screen coordinate system (origin at the top-left corner)
  6. Keyboard operations use Windows Virtual-Key Codes

Released under the GPL-3.0 License.