VC怎么获取硬件ID,CPU,硬件,网卡等

VC怎么获取硬件ID,CPU,硬件,网卡等,第1张

CString GetMacAddress()

/

    通过WMI取第一块活动网卡地址,事先需要调用过CoInitialize()初始化COM

/

{

    HRESULT hRes;

    hRes = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT,

        RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);

    if (FAILED(hRes))

        return _T("");

    IWbemLocator pLoc = NULL;

    hRes = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID)&pLoc);

    if (FAILED(hRes))

        return _T("");

    IWbemServices pSvc = NULL;

    hRes = pLoc->ConnectServer(_bstr_t(L"ROOT\\CIMV2"), NULL, NULL, 0,

        NULL, 0, 0, &pSvc);

    if (FAILED(hRes))

    {

        pLoc->Release();     

        return _T("");

    }

    hRes = CoSetProxyBlanket(pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE,

        NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_DEFAULT);

    if (FAILED(hRes))

    {

        pSvc->Release();

        pLoc->Release();     

        return _T("");

    }

    IEnumWbemClassObject pEnumerator = NULL;

    hRes = pSvc->ExecQuery(_bstr_t(L"WQL"), 

        _bstr_t(L"SELECT  FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE"),

        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 

        NULL, &pEnumerator);

    if (FAILED(hRes))

    {

        pSvc->Release();

        pLoc->Release();

        return _T("");

    }

    CString szMacAddress = _T("");

    while (true)

    {

        IWbemClassObject pclsObj = NULL;

        ULONG uReturn = 0;

        hRes = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn);

        if (FAILED(hRes) || !uReturn)

            break;

        VARIANT vtProp;

        VariantInit(&vtProp);

        if (SUCCEEDED(pclsObj->Get(L"MACAddress", 0, &vtProp, 0, 0)))

        {

            if (V_VT(&vtProp) == VT_BSTR)

            {

                szMacAddress = vtPropbstrVal;

                VariantClear(&vtProp);

                pclsObj->Release();

                break;

            }

            VariantClear(&vtProp);

        }

        pclsObj->Release();

    }

    pEnumerator->Release();

    pSvc->Release();

    pLoc->Release();

    return szMacAddress;

}

------解决方案--------------------奥,那个DLL大概在02年左右整理的好像,时间太久了,应该是不支持vsita的,楼主看看这段代码是否有用?我是拷贝来的:/  //函数名称:GetDriverInfomation  //函数功能:得到驱动器的信息  //参数1:bAlpha - BYTE型,驱动器的代号A-Z(a-z)  //参数2:iGTI_TYPE - int,将要获取的驱动器信息类型  // GDI_VOLUMENAME 得到驱动器名字  // GDI_VOLUMESERIALNUMBER 得到驱动器序列号  // GDI_VOLUMEFILESYSTEM 得到驱动器文件系统  // GDI_VOLUMETYPE 得到驱动器类型  // GDI_VOLUMESIZE 得到驱动器总大小  // GDI_VOLUMEFREESIZE 得到驱动器剩余大小  //返回值:CString型,所要得到的驱动器信息的字符串表达  //例子:得到C盘的名字GetDriverInfomation('C',GDI_VOLUMENAME)  /  #define GDI_VOLUMENAME 0  #define GDI_VOLUMESERIALNUMBER 1  #define GDI_VOLUMEFILESYSTEM 2  #define GDI_VOLUMETYPE 3  #define GDI_VOLUMESIZE 4  #define GDI_VOLUMEFREESIZE 5  CString GetDriverInfomation(BYTE bAlpha,int iGTI_TYPE)  {  CString strResult = _T("");

@echo Off & setlocal Enabledelayedexpansion & mode 65,15

 

>>$ ipconfig /all

>>$1 findstr /i "IPv4" "$" & move $1 $ & cls

 

>>$1 (for /f "tokens=2 delims=:" %%a in ($) do (

set/a str_step+=1 & set str=

set "str=%%a" & set str=!str:^(=! & set str=!str: =!

set str=!str:首选=! & set str=!str:^)=!

echo !str!))

 

move $1 $ & cls & set str_step= & echo(

 

for /f "delims=" %%a in ($) do (

set/a str_step+=1

echo !str_step!%%a)

echo & set/p ips= 请选择 IP :

for /f "delims=" %%a in ($) do set/a step+=1

if !ips!==0 (exit) else if !ips! gtr !step! exit

set str_step=

for /f "delims=" %%a in ($) do (

set/a str_step+=1

if !str_step!==!ips! set "ipstr=%%a")

 

echo 您的IP则是: !ipstr!

 

pause>nul

:: 中国批处理脚本联盟

:: 已经将您的 IP 赋值给了 ipstr 这个变量, 你可以加以应用!

是否动态获取IP(主要)?不知道呢

C调用内核API我还真不知道

可以用SHELL

ifconfig eth0|grep Mask|awk 'BEGIN{RS=":"}{print $1}' |grep -v 'inet'

列出分别是

IP

Bcast

Mask

自己看着办吧

以上就是关于VC怎么获取硬件ID,CPU,硬件,网卡等全部的内容,包括:VC怎么获取硬件ID,CPU,硬件,网卡等、批处理-获取第二张网卡的IP地址最后一位、linux c语言 获得网卡状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/10069279.html

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

发表评论

登录后才能评论

评论列表(0条)

保存