• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 獲取有關顯示器、鼠標及系統的配置信息

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    問題 有時, 程序員 希望能夠確定用戶目前正在使用的是什么配置,此信息應該包括驅動器的數目和類型,以及 用戶是否使用鼠標。當然,最好能夠確定用戶使用的顯示器的類型以及顯示器的分辨率。 方法 確定所有的信息需要好幾步。首先可以利用 Windows API 函數
    問題
      有時,程序員希望能夠確定用戶目前正在使用的是什么配置,此信息應該包括驅動器的數目和類型,以及 用戶是否使用鼠標。當然,最好能夠確定用戶使用的顯示器的類型以及顯示器的分辨率。

    方法
      確定所有的信息需要好幾步。首先可以利用 Windows API 函數 GetDriveType 來確定機器安裝了哪些 驅動器以及它們是什么類型(硬盤,CD-ROM,軟盤,或網絡驅動器)。
      使用 Windows API 函數 GetSystemMetrics 可以獲取信息的第二部分(是否有鼠標及顯示器的大?。?。 此函數會返回給程序員大量的信息,在本節中我們只使用其中的一部分。

    步驟
      按照下列步驟實現一個例子程序。運行此例子程序,從菜單 SysInfo 中選擇菜單項 Drivers,將彈出一 個對話框。對話框包含所有可能的驅動器盤符(A-Z)以及對應的驅動器類型。類型是下列中的一個:

    不確定的:此驅動器可能在系統中不存在。
    可移動驅動器:通常為軟盤驅動器。
    固定驅動器:通常為硬盤。
    網絡驅動器:通常為網絡驅動器,但某些類型的 CD-ROM 驅動器也歸為此類。
    CD-ROM:通常為 CD-ROM 驅動器。
    虛擬驅動器:通常指用內存虛擬的驅動器。
      1.在 Visual C++ 中,利用 AppWizard 創建新的項目文件,并命名此項目文件為 LD12.MAK.利用 AppStudio,在菜單 IDR_WAINFRAME 中添加新的菜單 SysInfo.在 SysInfo 中添加新的菜單項 &Drivers,其 ID 為 ID_DRIVER_INFO.
      2.在 AppStudio 中,創建新的對話框 IDD_DIALOG1.添加 26 個靜態文本域,標題為驅動器盤符(A:, B:,C:等等).與其對齊,添加另外 26 個靜態文本域。與驅動器盤符同順序,ID 分別賦為 1001,1002 等 等。
      3.在 AppStudio 中,選擇 ClassWizard,然后選擇 New Class 來創建新的對話框類。新類命名為 CDriveDlg,并接受其他所有缺省值。為消息 WM_INITDIALOG 添加一個函數(命名為 OnInitDialog)。
      4.在 OnInitDialog 中,添加下列代碼:


    BOOL CDriveDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();
    char buf[10];

    for(int i=0;i<26;i++)
    {
    sprintf(buf,"%c:\\",'A'+i);
    WORD type=GetDriveType(buf);
    switch(type)
    {
    case DRIVE_UNKNOWN:
    GetDlgItem(1001+i)->SetWindowText("不能識別的驅動器");
    break;
    case DRIVE_NO_ROOT_DIR:
    GetDlgItem(1001+i)->SetWindowText("不確定的驅動器");
    break;
    case DRIVE_REMOVABLE:
    GetDlgItem(1001+i)->SetWindowText("可移動的驅動器");
    break;
    case DRIVE_FIXED:
    GetDlgItem(1001+i)->SetWindowText("固定的驅動器");
    break;
    case DRIVE_REMOTE:
    GetDlgItem(1001+i)->SetWindowText("網絡驅動器");
    break;
    case DRIVE_CDROM:
    GetDlgItem(1001+i)->SetWindowText("CD-ROM驅動器");
    break;
    case DRIVE_RAMDISK:
    GetDlgItem(1001+i)->SetWindowText("虛擬驅動器");
    break;
    default:
    GetDlgItem(1001+i)->SetWindowText("");
    break;
    }
    }

    return TRUE; // return TRUE unless you set the focus to a control
    }

      5.啟動 ClassWizard.從下拉列表中選擇對象 CMainFrame,從對象列表中選擇 ID_DRIVE_INFO,選擇 消息 COMMAND.點擊按鈕 Add Function,新函數命名為 OnDriveInfo,在 CMainFrame 的函數 OnDriveInfo 中添加下列代碼:

    void CMainFrame::OnDriveInfo()
    {
    CDriveDlg dlg;

    dlg.DoModal();
    }

      6.在文件 MAINFRAME.CPP 頂部的 include 文件列表中添加下面一行:
    #include "DriveDlg.h"
      7.編譯并運行此例子程序。


    用法
      函數 GetDriveType 通常用來確定安裝的驅動器類型。盡管此函數可能被某些 CD-ROM 驅動器、網 絡驅動器以及軟件模擬驅動器所“欺騙”,但仍是一個確定當前系統中哪一個驅動器符可用的理想方法。這 些驅動器符接著就可以用在應用程序中。


      函數 GetSystemmetrics 通常用來獲取多種有關系統及其性能的信息。在本節中只使用此 API 函 數獲取某些有用的信息。程序員可以使用此函數來將窗口置與于屏幕的中央,同時也可以使對話框和顯示 的信息居中。

    步驟
      按照下列步驟實現一個例子程序。運行此例子程序,從菜單 SysInfo 中選擇菜單項 Screen_Mouse, 將彈出一個對話框,顯示用戶是否安裝了鼠標以及當前屏幕的分辨率。

      1.在 Visual C++ 中,利用AppStudio,在菜單 SysInfo 中添加新的菜單項&Screen_Mouse,其對 話框 ID 為 ID_SCREEN_MOUSE.
      2.在 AppStudio 中,創建新的對話框 IDD_DIALOG2.添加 3 個靜態文本域,標題分別為 Mouse Present:、Screen Width 以及 Screen Height.與其對齊,添加另外 3 個靜態文本域。與之同順序, ID 分別賦為 ID_MOUSE,ID_SCREN_WIDTH,ID_SCREEN_HEIGHT。
      3.在 AppStudio 中,選擇 ClassWizard,然后選擇 New Class 來創建新的對話框類。新類命名為 CScreenMouseDlg,并接受其他所有缺省值。為消息 WM_INITDIALOG 添加一個函數(命名為 OnInitDialog)。
      4.在 OnInitDialog 中,添加下列代碼:


    BOOL CScreenMouseDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();

    char buf[10];

    if(GetSystemMetrics(SM_MOUSEPRESENT)!=0)
    GetDlgItem(ID_MOUSE)->SetWindowText("是");
    else
    GetDlgItem(ID_MOUSE)->SetWindowText("否");
    _ltoa(GetSystemMetrics(SM_CXSCREEN),buf,10);
    GetDlgItem(ID_SCREEN_WIDTH)->SetWindowText(buf);
    _ltoa(GetSystemMetrics(SM_CYSCREEN),buf,10);
    GetDlgItem(ID_SCREEN_HEIGHT)->SetWindowText(buf);

    return TRUE; // return TRUE unless you set the focus to a control
    }

      5.啟動 ClassWizard.從下拉列表中選擇對象 CMainFrame,從對象列表中選擇 ID_SCREEN_MOUSE, 選擇消息 COMMAND.點擊按鈕 Add Function,新函數命名為 OnScreenMouse,在函數 OnScreenMouse 中添加下列代碼:

    void CMainFrame::OnScreenMouse()
    {
    CScreenMouseDlg dlg;

    dlg.DoModal();
    }

      6.在文件 MAINFRAME.CPP 頂部的 include 文件列表中添加下面一行:
    #include "ScreenMouseDlg.h"
      7.編譯并運行此例子程序。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>