程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 獲取信息的有關Windows API

獲取信息的有關Windows API

編輯:vc教程

1.窗口信息

MS為我們提供了打開特定桌面和枚舉桌面窗口的函數。

hDesk = OpenDesktop(lpszDesktop, 0, FALSE, DESKTOP_ENUMERATE);

// 打開我們默認的Default桌面;

EnumDesktopWindows(hDesk,(WNDENUMPROC)EnumWindowProc, 0);

// 枚舉打開桌面上的所有窗口,由回調函數實現。

BOOL __stdcall EnumWindowProc(HWND, LPARAM);

// 在回調函數中,我們可以獲得窗口的標題和相關進程,線程信息;

GetWindowText(hWnd, szWindowText, dwMaxCount);

GetWindowThreadProcessId(hWnd, &dwPID);

2.設備驅動器信息(服務和設備驅動器差不多,在此不做重復)

設備驅動信息有服務控制管理器(SCM)來管理的,我要打開服務控制管理器,並枚舉所有的設備驅動器。

OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

// 以所有權限打開服務控制管理器;

EnumServicesStatus(schManager, dwDeviceType, dwDeviceState,

EnumStatus, dwBufSize, &dwBytesNeeded, &dwDevicesReturned, &dwResumeHandle))

// 枚舉所有設備的當前狀態;

CloseServiceHandle(schManager);

// 記住,在結束訪問後要關閉服務句柄;

OpenService(schManager, szDeviceName, SERVICE_ALL_ACCESS);

// 打開特定的設備驅動器;

QueryServiceConfig(schDevice, lpDeviceConfig, 1024 * 8, &dwBytesNeeded);

// 查詢驅動器的服務配置信息;

QueryServiceStatus(schDevice, &DeviceStatus);

// 查詢設備驅動器的當前狀態;

QueryServiceConfig2(schDevice, SERVICE_CONFIG_DESCRIPTION, (LPBYTE)lpDeviceDescription, 8*1024, &dwBytesNeeded)

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved