00426-OEM-8992662-00006
已知的设备:
Win32_Processor, // CPU 处理器
Win32_PhysicalMemory, // 物理内存条
Win32_Keyboard, // 键盘
Win32_PointingDevice, // 点输入设备,包括鼠标。
Win32_FloppyDrive, // 软盘驱动器
Win32_DiskDrive, // 硬盘驱动器
Win32_CDROMDrive, // 光盘驱动器
Win32_BaseBoard, // 主板
Win32_BIOS, // BIOS 芯片
Win32_ParallelPort, // 并口
Win32_SerialPort, // 串口
Win32_SerialPortConfiguration, // 串口配置
Win32_SoundDevice, // 多媒体设置,一般指声卡。
Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)
Win32_USBController, // USB 控制器
Win32_NetworkAdapter, // 网络适配器
Win32_NetworkAdapterConfiguration, // 网络适配器设置
Win32_Printer, // 打印机
Win32_PrinterConfiguration, // 打印机设置
Win32_PrintJob, // 打印机任务
Win32_TCPIPPrinterPort, // 打印机端口
Win32_POTSModem, // MODEM
Win32_POTSModemToSerialPort, // MODEM 端口
Win32_DesktopMonitor, // 显示器
Win32_DisplayConfiguration, // 显卡
Win32_DisplayControllerConfiguration, // 显卡设置
Win32_VideoController, // 显卡细节。
Win32_VideoSettings, // 显卡支持的显示模式。
// 操作系统
Win32_TimeZone, // 时区
Win32_SystemDriver, // 驱动程序
Win32_DiskPartition, // 磁盘分区
Win32_LogicalDisk, // 逻辑磁盘
Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。
Win32_LogicalMemoryConfiguration, // 逻辑内存配置
Win32_PageFile, // 系统页文件信息
Win32_PageFileSetting, // 页文件设置
Win32_BootConfiguration, // 系统启动配置
Win32_ComputerSystem, // 计算机信息简要
Win32_OperatingSystem, // 操作系统信息
Win32_StartupCommand, // 系统自动启动程序
Win32_Service, // 系统安装的服务
Win32_Group, // 系统管理组
Win32_GroupUser, // 系统组帐号
Win32_UserAccount, // 用户帐号
Win32_Process, // 系统进程
Win32_Thread, // 系统线程
Win32_Share, // 共享
Win32_NetworkClient, // 已安装的网络客户端
Win32_NetworkProtocol, // 已安装的网络协议
CString ReadRegisteTable(CString root,CString path, CString key)
{
HKEY hAppKey;
LPCTSTR WINDS_SERVICE_REGISTRY_KEY=path;
LPCTSTR DATA_FILE_SUB_KEY=key;
char szDataFile[80];
if(root=="HKEY_LOCAL_MACHINE")
{
if (ERROR_SUCCESS == RegOpenKeyEx (
HKEY_LOCAL_MACHINE,
WINDS_SERVICE_REGISTRY_KEY,
0,
KEY_READ,
&hAppKey))
{
ULONG cbSize = MAX_PATH*sizeof(TCHAR);
DWORD dwFlag = RegQueryValueEx (
hAppKey,
DATA_FILE_SUB_KEY,
NULL,
NULL,
(LPBYTE)szDataFile,&cbSize);
RegCloseKey (hAppKey);
if (ERROR_SUCCESS == dwFlag)
{
CString strDate=szDataFile; //MessageBox(strDate);
if(strDate.GetLength()>0) return strDate;
else return "";
}
return "";
}
}
if(root=="HKEY_CURRENT_USER")
{
if (ERROR_SUCCESS == RegOpenKeyEx (
HKEY_CURRENT_USER,
WINDS_SERVICE_REGISTRY_KEY,
0,
KEY_READ,
&hAppKey))
{
ULONG cbSize = MAX_PATH*sizeof(TCHAR);
DWORD dwFlag = RegQueryValueEx (
hAppKey,
DATA_FILE_SUB_KEY,
NULL,
NULL,
(LPBYTE)szDataFile,&cbSize);
RegCloseKey (hAppKey);
if (ERROR_SUCCESS == dwFlag)
{
CString strDate=szDataFile; //MessageBox(strDate);
if(strDate.GetLength()>0) return strDate;
else return "";
}
return "";
}
}
return "";
}
获取用户名: GetWindowsDirectory(szInfo, MAX_PATH + 1);
获取系统补丁: using System.Management;
var searchOS = new ManagementObjectSearcher("Select * from Win32_OperatingSystem");
Response.Write("
{
if(DiskInfo&1)//通过位运算的逻辑与操作,判定是否为1
{
++DiskCount;
}
DiskInfo = DiskInfo >> 1;//通过位运算的右移操作保证每循环一次所检查的位置向右移动一位。
//DiskInfo = DiskInfo/2;
}
cout<<"逻辑磁盘数量:"<
int DSLength = GetLogicalDriveStrings(0,NULL);
//通过GetLogicalDriveStrings()函数获取所有驱动器字符串信息长度。
char* DStr = new char[DSLength];//用获取的长度在堆区创建一个c风格的字符串数组
GetLogicalDriveStrings(DSLength,(LPTSTR)DStr);
//通过GetLogicalDriveStrings将字符串信息复制到堆区数组中,其中保存了所有驱动器的信息。
int DType;
int si=0;
BOOL fResult;
unsigned _int64 i64FreeBytesToCaller;
unsigned _int64 i64TotalBytes;
unsigned _int64 i64FreeBytes;
for(int i=0;i
{
char dir[3]={DStr[si],':','\\'};
cout<
//GetDriveType函数,可以获取驱动器类型,参数为驱动器的根目录
if(DType == DRIVE_FIXED)
{
cout<<"硬盘";
}
else if(DType == DRIVE_CDROM)
{
cout<<"光驱";
}
else if(DType == DRIVE_REMOVABLE)
{
cout<<"可移动式磁盘";
}
else if(DType == DRIVE_REMOTE)
{
cout<<"网络磁盘";
}
else if(DType == DRIVE_RAMDISK)
{
cout<<"虚拟RAM磁盘";
}
else if (DType == DRIVE_UNKNOWN)
{
cout<<"未知设备";
}
fResult = GetDiskFreeSpaceEx (
dir,
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
//GetDiskFreeSpaceEx函数,可以获取驱动器磁盘的空间状态,函数返回的是个BOOL类型数据
if(fResult)//通过返回的BOOL数据判定驱动器是否在工作状态
{
cout<<" totalspace:"<<(float)i64TotalBytes/1024/1024<<" MB";//磁盘总容量
cout<<" freespace:"<<(float)i64FreeBytesToCaller/1024/1024<<" MB";//磁盘剩余空间
}
else
{
cout<<" 设备未预备好";
}
cout<
}
system("pause");
}
BOOL GetDeviceInfo(CStringArray& arrDrives) 08.{ 09.
DWORD dw = ::GetLogicalDriveStri
ngs(0, NULL); 10.
TCHAR* pAllDrivers = new TCHAR[dw]; 11.
::GetLogicalDriveStrings(dw, pAllDrivers); 12.
LPCTSTR pDriver = pAllDrivers; 13.
DWORD DriverNum = 0; 14.
while(pDriver[0] != 0) 15.
{ 16.
arrDrives.Add(pDriver); 17.
DriverNum++; 18.
pDriver = _tcschr(pDriver, 0) + 1; 19.
} 20.
delete [] pAllDrivers; 21.
return TRUE; 22.}
// 函数描述:函数名GetDeviceInfo
02.// 功能:取驱动器信息
03.// GetLogicalDriveStrings返回的格式为A:\0B:\0C:\0
04.// 参数描述:arrDrives存储所有盘符
05.// 返回值描述:TRUE成功 FALSE失败
06.//
07.BOOL GetDeviceInfo(CStringArray& arrDrives)
08.{
09.
DWORD dw = ::GetLogicalDriveStrings(0, NULL);
10.
TCHAR* pAllDrivers = new TCHAR[dw];
11. ::GetLogicalDriveStrings(dw, pAllDrivers);
12. LPCTSTR pDriver = pAllDrivers;
13. DWORD DriverNum = 0;
14.
while(pDriver[0] != 0)
15. {
16. arrDrives.Add(pDriver);
17.
DriverNum++;
18.
pDriver = _tcschr(pDriver, 0) + 1;
19.
}
20.
delete [] pAllDrivers;
21.
return TRUE;
22.}
int DSLength = GetLogicalDriveStrings(0,NULL);
//通过GetLogicalDriveStrings()函数获取所有驱动器字符串信息长度。
char* DStr = new char[DSLength];//用获取的长度在堆区创建一个c风格的字符串数组
GetLogicalDriveStrings(DSLength,(LPTSTR)DStr);
//通过GetLogicalDriveStrings将字符串信息复制到堆区数组中,其中保存了所有驱动器的信息。
int DType;
int si=0;
for(int i=0;i
//为了显示每个驱动器的状态,则通过循环输出实现,由于DStr内部保存的数据是A:\NULLB:\NULLC:\NULL,这样的信息,所以DSLength/4可以获得具体大循环范围
{
char dir[3]={DStr[si],':','\\'};
//cout<
DType = GetDriveType(DStr+i*4);
//GetDriveType函数,可以获取驱动器类型,参数为驱动器的根目录
if(DType == DRIVE_FIXED)
{
printf("%c",*dir);
printf("硬盘\n");
}
si+=4;
}
system("pause");//
return 1;