文/TOo2y
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) //查询设备的描述信息; StartService(schDevice,0,NULL); //启动设备; ControlService(schDevice,SERVICE_CONTROL_STOP,&DeviceStatus); //停止设备; DeleteService(schDevice); //删除设备; |
3.磁盘信息
我们希望获得系统所有磁盘的信息,包括软盘,硬盘,光盘等等;
GetLogicalDriveStrings(dwBufferLength,lpBuffer); //获得逻辑设备的信息; GetVolumeInformation(lpRootPathName,lpVolumeNameBuffer, dwVolumeNameSize,&dwVolumeSerialNumber, &dwMaximumComponentLength,&dwFileSystemFlags, lpFileSystemNameBuffer,dwFileSystemNameSize); //获得磁盘卷信息,包括卷名称和格式类型; GetDiskFreeSpaceEx(lpRootPathName,&FreeBytesAvailable, &TotalNumberOfBytes,&TotalNumberOfFreeBytes); //探测磁盘的空间使用情况; |
4.环境变量
我们可以从注册表中获得环境块的信息:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment,当然要使用注册表的函数。
RegOpenKeyEx(HKEY_LOCAL_MACHINE,RegKey,0,KEY_QUERY_VALUE,&hKey); //打开注册表的键; RegEnumValue(hKey,dwIndex,EnvironVariable, &dwVariableLength,NULL,NULL,NULL,NULL); //查询我们需要的信息值; GetEnvironmentVariable(EnvironVariable,EnvironString,1024); //获得环境变量的字符串信息; |
[上一页] [1] [2] [3] [4] [5] [下一页]
|