我试图创建一个简单的监视器亮度调整。 SetMonitorBrightness()不会以某种方式(ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA
)在所需的监视器上工作,所以我尝试IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS.
为了获得句柄,我使用了CreateFile:
HANDLE hDisplay = ::CreateFile(_T("\\.\LCD"),
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
CREATE_NEW,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
现在,当我尝试访问DeviceIoControl()
中的句柄时DWORD ret = NULL;
OVERLAPPED olp;
if (!DeviceIoControl(hDisplay, IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS, &brgt, sizeof(brgt), NULL, 0, &ret, &olp))
{
//ErrorMessageblabla
}
我得到Error 6: Invalid Handle
我做错了什么?