2024年3月14日发(作者:)
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);


发布评论