枚举屏幕信息

01. #include "stdafx.h"  
02.#include <windows.h>  
03.#include <stdio.h>  
04.#include <tchar.h>  
05.#include <conio.h>  
06.  
07. void CheckDisplay(); 
08.int main(int argc, char *argv[]) 
09.{ 
10.    CheckDisplay(); 
11.    _getch(); 
12.    return 0; 
13.} 
14.void CheckDisplay() 
15.{ 
16.    BOOL            FoundSecondaryDisp = FALSE; 
17.    DWORD           DispNum = 0; 
18.    DISPLAY_DEVICE  DisplayDevice; 
19.    LONG            Result; 
20.    int             i = 0; 
21.    DEVMODE   defaultMode; 
22.    // initialize DisplayDevice  
23.    ZeroMemory(&DisplayDevice, sizeof(DisplayDevice)); 
24.    DisplayDevice.cb = sizeof(DisplayDevice); 
25.    // get all display devices  
26.    while (EnumDisplayDevices(NULL, DispNum, &DisplayDevice, 0)) 
27.    { 
28.        ZeroMemory(&defaultMode, sizeof(DEVMODE)); 
29.        defaultMode.dmSize = sizeof(DEVMODE); 
30.        if ( !EnumDisplaySettings((LPCWSTR)DisplayDevice.DeviceName, ENUM_REGISTRY_SETTINGS, &defaultMode) ) 
31.            OutputDebugString((LPCWSTR)"Store default failed/n"); 
32.        if ((DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) && 
33.                !(DisplayDevice.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE)) 
34.        { 
35.            DEVMODE    DevMode; 
36.            ZeroMemory(&DevMode, sizeof(DevMode)); 
37.            DevMode.dmSize = sizeof(DevMode); 
38.            DevMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL | DM_POSITION 
39.                | DM_DISPLAYFREQUENCY | DM_DISPLAYFLAGS ; 
40.            Result = ChangeDisplaySettingsEx((LPCWSTR)DisplayDevice.DeviceName, &DevMode, NULL, CDS_UPDATEREGISTRY, NULL); 
41.            Result = ChangeDisplaySettingsEx((LPCWSTR)DisplayDevice.DeviceName, &DevMode, NULL, CDS_UPDATEREGISTRY, NULL); 
42.            //The code below shows how to re-attach the secondary displays to the desktop  
43.            ChangeDisplaySettingsEx((LPCWSTR)DisplayDevice.DeviceName, &defaultMode, NULL, CDS_UPDATEREGISTRY, NULL); 
44.            ChangeDisplaySettingsEx((LPCWSTR)DisplayDevice.DeviceName, &defaultMode, NULL, CDS_UPDATEREGISTRY, NULL); 
45.        } 
46.        // Reinit DisplayDevice just to be extra clean  
47.        ZeroMemory(&DisplayDevice, sizeof(DisplayDevice)); 
48.        DisplayDevice.cb = sizeof(DisplayDevice); 
49.        DispNum++; 
50.    } // end while for all display devices  
51.    printf("Display Device Number is %d/n",DispNum); 
52.};  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值