我已经在Google上搜索了,但没有找到答案,因此,如果有人知道这将非常感谢!
我想使用命令行或一些winapi检查多个显示的状态。例如:如果我设置:"扩展屏幕"或"重复屏幕",我希望能够验证它。只是不知道从哪里开始。
非常感谢
我将从Winapi EnumdisPlayMonitors函数开始:http://msdn.microsoft.com/en-us/library/dd162610(vs.85).85).aspx
BOOL EnumDisplayMonitors(
_In_ HDC hdc,
_In_ LPCRECT lprcClip,
_In_ MONITORENUMPROC lpfnEnum,
_In_ LPARAM dwData
);
您需要调用此功能将前两个参数设置为null:
EnumDisplayMonitors(NULL, NULL, MyPaintEnumProc, 0);
//Enumerates all display monitors.
//The callback function receives a NULL HDC.
现在您拥有MonitorEnumProc回调函数:http://msdn.microsoft.com/en-us/library/dd145061(v=vs.85).aspx
BOOL CALLBACK MonitorEnumProc(
_In_ HMONITOR hMonitor,
_In_ HDC hdcMonitor,
_In_ LPRECT lprcMonitor,
_In_ LPARAM dwData
);
您可以填写lprcmonitor:
指向矩形结构的指针。 如果hdcmonitor是非null,则此矩形是HDCMonitor和HDCMonitor和 显示监视器矩形。矩形坐标是 设备-Context坐标。
If hdcMonitor is NULL, this rectangle is the display monitor rectangle. The rectangle coordinates are virtual-screen coordinates.
基于所有监视器的此值,您可以决定您是否具有扩展模式(Rects不同)还是重复(它们相等)。
hth-祝你好运!