汇编语言或者C语言可以提取手机硬件信息吗 android

汇编语言或者C语言可以提取手机硬件信息吗 android,第1张

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硬件码信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9337003.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存