
void open (const char filename, openmode mode);
这里filename 是一个字符串,代表要打开的文件名,mode 是以下标志符的一个组合:
ios::in 为输入(读)而打开文件
ios::out 为输出(写)而打开文件
总的来说 FRAMEWORK 好像不提供这些功能,如果你想调用的话,就得C#内调 USR32DLL 这些系统内部的DLL文件
下面是我以前复制来的,总的道理就是 调用USER32DLL 然后用它里面的函数初始化C#结构,里面有各种硬件信息
using System;
using SystemCollectionsGeneric;
using SystemDiagnostics;
using SystemThreading;
using SystemIO;
using SystemText;
using SystemManagement;
using SystemRuntimeInteropServices;
namespace LemonySystemInfo
{
///
/// 系统信息类 - 获取CPU、内存、磁盘、进程信息
///
public class SystemInfo
{
private int m_ProcessorCount = 0; //CPU个数
private PerformanceCounter pcCpuLoad; //CPU计数器
private long m_PhysicalMemory = 0; //物理内存
private const int GW_HWNDFIRST = 0;
private const int GW_HWNDNEXT = 2;
private const int GWL_STYLE = (-16);
private const int WS_VISIBLE = 268435456;
private const int WS_BORDER = 8388608;
#region AIP声明
[DllImport("IpHlpApidll")]
extern static public uint GetIfTable(byte[] pIfTable, ref uint pdwSize, bool bOrder);
[DllImport("User32")]
private extern static int GetWindow(int hWnd, int wCmd);
[DllImport("User32")]
private extern static int GetWindowLongA(int hWnd, int wIndx);
[DllImport("user32dll")]
private static extern bool GetWindowText(int hWnd, StringBuilder title, int maxBufSize);
[DllImport("user32", CharSet = CharSetAuto)]
private extern static int GetWindowTextLength(IntPtr hWnd);
#endregion
#region 构造函数
///
/// 构造函数,初始化计数器等
///
public SystemInfo()
{
//初始化CPU计数器
pcCpuLoad = new PerformanceCounter("Processor", "% Processor Time", "_Total");
pcCpuLoadMachineName = "";
pcCpuLoadNextValue();
//CPU个数
m_ProcessorCount = EnvironmentProcessorCount;
//获得物理内存
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mcGetInstances();
foreach (ManagementObject mo in moc)
{
if (mo["TotalPhysicalMemory"] != null)
{
m_PhysicalMemory = longParse(mo["TotalPhysicalMemory"]ToString());
}
}
}
#endregion
#region CPU个数
///
/// 获取CPU个数
///
public int ProcessorCount
{
get
{
return m_ProcessorCount;
}
}
#endregion
#region CPU占用率
///
/// 获取CPU占用率
///
public float CpuLoad
{
get
{
return pcCpuLoadNextValue();
}
}
#endregion
#region 可用内存
///
/// 获取可用内存
///
public long MemoryAvailable
{
get
{
long availablebytes = 0;
//ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT FROM Win32_PerfRawData_PerfOS_Memory");
//foreach (ManagementObject mo in mosGet())
//{
// availablebytes = longParse(mo["Availablebytes"]ToString());
//}
ManagementClass mos = new ManagementClass("Win32_OperatingSystem");
foreach (ManagementObject mo in mosGetInstances())
{
if (mo["FreePhysicalMemory"] != null)
{
availablebytes = 1024 longParse(mo["FreePhysicalMemory"]ToString());
}
}
return availablebytes;
}
}
#endregion
#region 物理内存
///
/// 获取物理内存
///
public long PhysicalMemory
{
get
{
return m_PhysicalMemory;
}
}
#endregion
#region 获得分区信息
///
/// 获取分区信息
///
public List GetLogicalDrives()
{
List drives = new List();
ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection disks = diskClassGetInstances();
foreach (ManagementObject disk in disks)
{
// DriveTypeFixed 为固定磁盘(硬盘)
if (intParse(disk["DriveType"]ToString()) == (int)DriveTypeFixed)
{
drivesAdd(new DiskInfo(disk["Name"]ToString(), longParse(disk["Size"]ToString()), longParse(disk["FreeSpace"]ToString())));
}
}
return drives;
}
///
/// 获取特定分区信息
///
/// 盘符
public List GetLogicalDrives(char DriverID)
{
List drives = new List();
WqlObjectQuery wmiquery = new WqlObjectQuery("SELECT FROM Win32_LogicalDisk WHERE DeviceID = ’" + DriverID + ":’");
ManagementObjectSearcher wmifind = new ManagementObjectSearcher(wmiquery);
foreach (ManagementObject disk in wmifindGet())
{
if (intParse(disk["DriveType"]ToString()) == (int)DriveTypeFixed)
{
drivesAdd(new DiskInfo(disk["Name"]ToString(), longParse(disk["Size"]ToString()), longParse(disk["FreeSpace"]ToString())));
}
}
return drives;
}
#endregion
#region 获得进程列表
///
/// 获得进程列表
///
public List GetProcessInfo()
{
List pInfo = new List();
Process[] processes = ProcessGetProcesses();
foreach (Process instance in processes)
{
try
{
pInfoAdd(new ProcessInfo(instanceId,
instanceProcessName,
instanceTotalProcessorTimeTotalMilliseconds,
instanceWorkingSet64,
instanceMainModuleFileName));
}
catch { }
}
return pInfo;
}
///
/// 获得特定进程信息
///
/// 进程名称
public List GetProcessInfo(string ProcessName)
{
List pInfo = new List();
Process[] processes = ProcessGetProcessesByName(ProcessName);
foreach (Process instance in processes)
{
try
{
pInfoAdd(new ProcessInfo(instanceId,
instanceProcessName,
instanceTotalProcessorTimeTotalMilliseconds,
instanceWorkingSet64,
instanceMainModuleFileName));
}
catch { }
}
return pInfo;
}
#endregion
#region 结束指定进程
///
/// 结束指定进程
///
/// 进程的 Process ID
public static void EndProcess(int pid)
{
try
{
Process process = ProcessGetProcessById(pid);
processKill();
}
catch { }
}
#endregion
#region 查找所有应用程序标题
///
/// 查找所有应用程序标题
///
/// 应用程序标题范型
public static List FindAllApps(int Handle)
{
List Apps = new List();
int hwCurr;
hwCurr = GetWindow(Handle, GW_HWNDFIRST);
while (hwCurr > 0)
{
int IsTask = (WS_VISIBLE | WS_BORDER);
int lngStyle = GetWindowLongA(hwCurr, GWL_STYLE);
bool TaskWindow = ((lngStyle & IsTask) == IsTask);
if (TaskWindow)
{
int length = GetWindowTextLength(new IntPtr(hwCurr));
StringBuilder sb = new StringBuilder(2 length + 1);
GetWindowText(hwCurr, sb, sbCapacity);
string strTitle = sbToString();
if (!stringIsNullOrEmpty(strTitle))
{
AppsAdd(strTitle);
}
}
hwCurr = GetWindow(hwCurr, GW_HWNDNEXT);
}
return Apps;
}
#endregion
}
}
建议直接进主板的bios查看硬件信息,
linux的话看具体什么版本了,指令可能有些小差异,
linux指令:
1、
主板信息
#查看bios信息
dmidecode
|
grep
-a
28
“bios
information”
#查看主板型号信息
dmidecode
|grep
-a
10
“base
board
information”
dmidecode
-t
baseboard
2,、cpu信息
#通过/proc文件系统
cat
/proc/cpuinfo
#通过查看开机信息
dmesg
|
grep
-i
‘cpu’
dmidecode
-t
processor
3、
硬盘信息
#查看分区情况
fdisk
-l
#查看大小情况
df
-h
#查看使用情况
du
-h
hdparm
-i
/dev/sda
dmesg
|
grep
sda
4、内存信息
1)
cat
/proc/meminfo
2)
dmesg
|
grep
mem
3)
free
-m
4)
vmstat
5)
dmidecode
-t
memory
5、网卡信息
1)
dmesg
|
grep
-i
‘eth’
2)
cat
/etc/sysconfig/hwconf
|
grep
-i
eth
3)
lspci
|
grep
-i
‘eth’
6、网络流量
1)iptraf
2)
nload
6,、鼠标键盘和usb信息
查看键盘和鼠标:cat
/proc/bus/input/devices
查看usb设备:cat
/proc/bus/usb/devices
查看各设备的中断请求(irq):cat
/proc/interrupts
7、
显卡信息
1)lspci
|grep
-i
‘vga’
2)dmesg
|
grep
-i
‘vga
不要用GetVolumeInformation ,否则客户重装系统软件就不能用了。
比较推荐用硬盘序列号。具体你搜一下,代码很多的。
需要注意的是:有一些硬盘没有序列号的。这种情况下就需要给一个默认的
鼠标指着“我的电脑”右击一下,打开“属性” 选择“硬件”标签,打开设备管理器,就可以查看你电脑里的硬件类型,查看 *** 作系统的话,就选择“常规”标签。
也可以下载“windows 优化大师”最新版
以上就是关于汇编语言或者C语言可以提取手机硬件信息吗 android全部的内容,包括:汇编语言或者C语言可以提取手机硬件信息吗 android、C#读取某台服务器的硬件信息(winform实现)、获取Linux硬件码信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)