首页 / 软件开发 / C++ / 获取信息的有关Windows API
获取信息的有关Windows API2008-01-051.窗口信息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)