Maybe this API function can do, but I don't know how to get the handle of the monitor.
Could you help me?
BOOL GetDevicePowerState( HANDLE hDevice, BOOL* pfOn);
[in] Handle to an object on the device, such as a file or socket, or a handle to the device itself.
[out] Pointer to the variable that receives the power state. This value is TRUE if the device is in the working state. Otherwise, it is FALSE.