精华内容
下载资源
问答
  • //查询系统所在硬盘的索引ManagementObjectSearcher mo = new ManagementObjectSearcher("SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE");foreach (var item in mo.Get()){string diskindex = ...

    //查询系统所在硬盘的索引

    ManagementObjectSearcher mo = new ManagementObjectSearcher("SELECT DiskIndex FROM Win32_DiskPartition WHERE Bootable = TRUE");

    foreach (var item in mo.Get())

    {

    string diskindex = item["DiskIndex"].ToString();

    MessageBox.Show(item["DiskIndex"].ToString());

    try

    {

    //根据硬盘索引查询硬盘序列号,XP查询“Win32_PhysicalMedia”,vista以后查询“Win32_DiskDrive”

    ManagementObjectSearcher ms = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_DiskDrive WHERE Index ="+"'"+diskindex+"'");

    foreach (var m in ms.Get())

    {

    MessageBox.Show(m["SerialNumber"].ToString());

    }

    }

    catch (Exception ex)

    {

    MessageBox.Show(ex.Message);

    }

    }

    //查询D盘卷标号

    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

    ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:\"");

    disk.Get();

    MessageBox.Show(disk.GetPropertyValue("VolumeSerialNumber").ToString());

    展开全文
  • ''获得硬盘序列号Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")Dim Uint32 As UInt32For Each cmicWmiObj As ManagementObject In cmicWmi.GetUint32 = ...

    ''获得硬盘序列号

    Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")

    Dim Uint32 As UInt32

    For Each cmicWmiObj As ManagementObject In cmicWmi.Get

    Uint32 = cmicWmiObj("signature")

    Next

    TextBox1.Text = Uint32.ToString

    ''获得CPU序列号

    Dim Wmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_Processor")

    Dim Uint32 As String

    For Each WmiObj As ManagementObject In Wmi.Get

    Uint32 = WmiObj("ProcessorId")

    Next

    TextBox1.Text = Uint32

    ''获得硬盘总容量

    Dim Wmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")

    Dim Uint64 As UInt64

    For Each WmiObj As ManagementObject In Wmi.Get

    Uint64 = WmiObj("size")

    Next

    TextBox1.Text = Uint64.ToString

    首先,引用System.Management;然后在代码中Imports System.Management;

    【责编:snow】

    --------------------next---------------------

    展开全文
  • 通过 SELECT * FROM Win32_PhysicalMedia 可以返回硬盘序列号,但是在实际使用中某些情况下(原因未知)返回的 SerialNumber 是实际硬盘序列号的字符串按字符UrlEncode得到的纯数字字符串,如硬盘序列号为 1551F01361...

    通过 SELECT * FROM Win32_PhysicalMedia 可以返回硬盘序列号,但是在实际使用中某些情况下(原因未知)返回的 SerialNumber 是实际硬盘序列号的字符串按字符UrlEncode得到的纯数字字符串,如硬盘序列号为 1551F01361BF,可能某一次返回给你的会变成 3531313530463331313646422020202020202020,因此需要简单处理一下

            If str.Length > 12 AndAlso str.Length Mod 4 = 0 Then
                Dim sb As New StringBuilder
                For i As Int32 = 0 To str.Length - 1 Step 4
                    sb.Append(HttpUtility.UrlDecode("%" & str.Substring(i + 2, 2)))
                    sb.Append(HttpUtility.UrlDecode("%" & str.Substring(i, 2)))
                Next
                str = sb.ToString.Trim
            End If
            Return str    
    

     至于出现这个问题的原因,我还在没找到答案,如果有哪位大侠遇到过,还望不吝赐教

    转载于:https://www.cnblogs.com/towerbit/p/9992866.html

    展开全文
  • WMI方式获取硬盘序列号VBS脚本

    热门讨论 2010-06-30 11:38:19
    通过调用WMI对象,查询并获取硬盘序列号,签名及标签
  • 使用python wmi采集的硬盘序列号 ``` import wmi c = wmi.WMI() for physical_disk in c.Win32_DiskDrive(): print('Disk SN: %s' % physical_disk.SerialNumber.strip()) ``` 得到: Disk SN: ...
  • 通过WMI获得硬盘序列号或其他信息

    千次阅读 2009-01-02 14:23:00
    工程人员今天反馈,我们的程序在vista下不能获得机器码(硬盘序列号)。经过Google查找资料和MSDN的帮助终于搞定。 网上很多VB.NET的代码示例这里就不说了。 C# string info=""; ManagementClass mc = new ...

    工程人员今天反馈,我们的程序在vista下不能获得机器码(硬盘序列号)。经过Google查找资料和MSDN的帮助终于搞定。

     

    网上很多VB.NET的代码示例这里就不说了。

     

    C#

     

     string info="";
       ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
       ManagementObjectCollection moc=mc.GetInstances();
       foreach(ManagementObject mo in moc)
       {
        info = mo.Properties["SerialNumber"].Value.ToString();
       }
       moc=null;
       mc=null;
       
       textBox1.Text = info;

     

    注意添加:System.Management引用。在代码的前面添加using System.Management;

    添加引用?不会,不可能?介绍他的方法:

    在vs.net 2003(我最喜欢用的,当然我的机器不喜欢用更高的版本太慢)

    Project->Add Reference-> .NET 查找->System.Management ->点击“Select”按钮->点击“ok”按钮即可。

     

    C++的方法,这个方法查找的资料最少了,通过MSDN一下子搞定,都是他上面的代码。我修改一下为了获得硬盘序列号

     HRESULT hres;

        // Step 1: --------------------------------------------------
        // Initialize COM. ------------------------------------------

        hres =  CoInitializeEx(0, COINIT_MULTITHREADED);
        if (FAILED(hres))
        {
            cout << "Failed to initialize COM library. Error code = 0x"
                << hex << hres << endl;
            return ;                  // Program has failed.
        }

        // Step 2: --------------------------------------------------
        // Set general COM security levels --------------------------
        // Note: If you are using Windows 2000, you need to specify -
        // the default authentication credentials for a user by using
        // a SOLE_AUTHENTICATION_LIST structure in the pAuthList ----
        // parameter of CoInitializeSecurity ------------------------

        hres =  CoInitializeSecurity(
            NULL,
            -1,                          // COM authentication
            NULL,                        // Authentication services
            NULL,                        // Reserved
            RPC_C_AUTHN_LEVEL_DEFAULT,   // Default authentication
            RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation 
            NULL,                        // Authentication info
            EOAC_NONE,                   // Additional capabilities
            NULL                         // Reserved
            );

                         
        if (FAILED(hres))
        {
            cout << "Failed to initialize security. Error code = 0x"
                << hex << hres << endl;
            CoUninitialize();
            return ;                    // Program has failed.
        }
       
        // Step 3: ---------------------------------------------------
        // Obtain the initial locator to WMI -------------------------

        IWbemLocator *pLoc = NULL;

        hres = CoCreateInstance(
            CLSID_WbemLocator,            
            0,
            CLSCTX_INPROC_SERVER,
            IID_IWbemLocator, (LPVOID *) &pLoc);
     
        if (FAILED(hres))
        {
            cout << "Failed to create IWbemLocator object."
                << " Err code = 0x"
                << hex << hres << endl;
            CoUninitialize();
            return ;                 // Program has failed.
        }

        // Step 4: -----------------------------------------------------
        // Connect to WMI through the IWbemLocator::ConnectServer method

        IWbemServices *pSvc = NULL;
     
        // Connect to the root/cimv2 namespace with
        // the current user and obtain pointer pSvc
        // to make IWbemServices calls.
        hres = pLoc->ConnectServer(
             _bstr_t(L"ROOT//CIMV2"), // Object path of WMI namespace
             NULL,                    // User name. NULL = current user
             NULL,                    // User password. NULL = current
             0,                       // Locale. NULL indicates current
             NULL,                    // Security flags.
             0,                       // Authority (e.g. Kerberos)
             0,                       // Context object
             &pSvc                    // pointer to IWbemServices proxy
             );
       
        if (FAILED(hres))
        {
            cout << "Could not connect. Error code = 0x"
                 << hex << hres << endl;
            pLoc->Release();    
            CoUninitialize();
            return ;                // Program has failed.
        }

        cout << "Connected to ROOT//CIMV2 WMI namespace" << endl;


        // Step 5: --------------------------------------------------
        // Set security levels on the proxy -------------------------

        hres = CoSetProxyBlanket(
           pSvc,                        // Indicates the proxy to set
           RPC_C_AUTHN_WINNT,           // RPC_C_AUTHN_xxx
           RPC_C_AUTHZ_NONE,            // RPC_C_AUTHZ_xxx
           NULL,                        // Server principal name
           RPC_C_AUTHN_LEVEL_CALL,      // RPC_C_AUTHN_LEVEL_xxx
           RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
           NULL,                        // client identity
           EOAC_NONE                    // proxy capabilities
        );

        if (FAILED(hres))
        {
            cout << "Could not set proxy blanket. Error code = 0x"
                << hex << hres << endl;
            pSvc->Release();
            pLoc->Release();    
            CoUninitialize();
            return ;               // Program has failed.
        }

        // Step 6: --------------------------------------------------
        // Use the IWbemServices pointer to make requests of WMI ----

        // For example, get the name of the operating system
        IEnumWbemClassObject* pEnumerator = NULL;
        hres = pSvc->ExecQuery(
            bstr_t("WQL"),
            bstr_t("SELECT * FROM Win32_PhysicalMedia"),
            WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
            NULL,
            &pEnumerator);
       
        if (FAILED(hres))
        {
            cout << "Query for operating system name failed."
                << " Error code = 0x"
                << hex << hres << endl;
            pSvc->Release();
            pLoc->Release();
            CoUninitialize();
            return ;               // Program has failed.
        }

        // Step 7: -------------------------------------------------
        // Get the data from the query in step 6 -------------------
     
        IWbemClassObject *pclsObj;
        ULONG uReturn = 0;
      
        while (pEnumerator)
        {
            HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
                &pclsObj, &uReturn);

            if(0 == uReturn)
            {
                break;
            }

            VARIANT vtProp;
            VariantInit(&vtProp);

            // Get the value of the Name property
            hr = pclsObj->Get(L"SerialNumber", 0, &vtProp, 0, 0);
            wcout << " OS Name : " << vtProp.bstrVal << endl;
            VariantClear(&vtProp);
        }

        // Cleanup
        // ========
       
        pSvc->Release();
        pLoc->Release();
        pEnumerator->Release();
        pclsObj->Release();
        CoUninitialize();

     

    希望大家都行动起来将自己的成果展示给大家看。多多看看 看雪论坛 到了那里才知道自己的无知。那天那个大侠自己写个操作系统,争取这个大侠早日出现!

    展开全文
  • 主要用于wmi方式获取c盘序列号,多用于生成硬件识别码,wmi可以获取很多设备信息,可以扩展到其他设备。但是wmi速度慢,而且有一定的局限性,有些环境获取不了,比如虚拟机。另一种更底层的方式是使用...
  • VC++2010编译,可以通过WMI获取设备相关信息网卡原生MAC地址、硬盘序列号、主板序列号、处理器ID 等。
  • 2.使用说明:打开程序后,点按钮后,三个TEXTBOX分别显示全球唯一标识的硬盘物理序列号、WMI方法获取的硬盘序列号WMI方法获取的CPU序列号 3.WMI方法被很多人诟病,有说读不出来什么的,我测试了几台机器确实有读不...
  • 于是想到利用硬盘序列号来生成license。而一台电脑往往有多块硬盘,并且根据用户需求可能会增加硬盘,用哪一块硬盘的序列号呢?很自然想到了系统所在的硬盘,因为系统所在的盘一般不会动,除非重装系统到另一块硬盘...
  • 开发语言:C/C++ 支持平台:Windows 实现功能: ...通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号 版本历史: V1.4 2010年05月17日  修正了硬盘序列号处理中的错
  • 我们的反盗版软件根据人们的硬盘序列号来识别他们。我相信这是一个不变的功能,不会改变,除非用户改变他们的主要物理驱动器-纠正我,如果我错了?我们使用WMIpython模块来获取用户硬盘驱动器序列号。对于我们的两台...
  • 序列号相当于电脑的身份证号,是硬件出厂时,厂商写在硬件里的唯一识别码,具有唯一性和不可修改性。很多正版软件以此来识别用户电脑,限制安装。
  • 最近由于项目的需要,需要在程序中获取机器的硬盘序列号和MAC地址等信息,在C#下,可以很容易的获得这些信息,但是在C++程序中感觉比较麻烦。经过百度,发现很多大虾都是通过WMI来获取这些硬件信息的,网上也有相关...
  • 最近由于项目的需要,需要在程序中获取机器的硬盘序列号和MAC地址等信息,在C#下,可以很容易的获得这些信息,但是在C++程序中感觉比较麻烦。经过百度,发现很多大虾都是通过WMI来获取这些硬件信息的,网上也有相关...
  • 设备对象枚举硬盘序列号,以实现lisence
  • 原文衔接 ...pip install wmi pip install pywin32 ...# # 硬盘序列号 for physical_disk in c.Win32_DiskDrive(): print(physical_disk.SerialNumber) # CPU序列号 for cpu in c.Win32_Processor(): p
  • C++ 获取硬盘序列号的代码,转发非原创,走过路过不要错过
  • 【源码】VB6.0获取硬盘序列号、获取硬盘逻辑盘序列号、获取CPU序列号、获取主板序列号
  • VB6下如何获得硬盘序列号

    千次阅读 2019-06-22 08:37:50
    硬盘序列号获得可以通过WMI获取,但是实际上在win7以上没问题,在winxp下就没法使用。因此可以通过API编程 来实现读取硬盘序列号,以下程序来源于网络,在winxp下可以正确获得,但在win7和win10下均无法获取: '=...
  • 通过wmic 命令获取CPU序列号、硬盘序列号、主板序列号、CPU名称等信息。 做软件加密、数据加密、软件1机1码绑定的场合比较实用。 WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具) ,提供了从...
  • 本代码详细说明如何实现Vc中获取硬盘序列号的方法,并附程序
  • C++读取硬盘序列号

    千次阅读 2016-12-22 08:44:07
    有时在将程序或者打包库提供给第三方时,...软件查看硬盘序列号借助DiskGenius查看硬盘序列号,选中硬盘,即可看到在下方有序列号。不过貌似SSD和机械硬盘的序列号格式是不一样的 SSD: 12位序列号 机械硬盘: 8位序
  • //这个函数使用了WMI,而且只获取第一个硬件/软件设置的信息。//用户可以根据需要自行修改。function GetWMIProperty(WMIType, WMIProperty:String):String;varWmi, Objs, Obj:OleVariant;Enum:IEnumVariant;C:...
  • Qt获取CPU编号和硬盘序列号

    千次阅读 2019-02-27 13:27:38
    windows下执行命令除了用cmd之外,还有个东西叫WMIC,非常强大,可以通过他获取很多信息,包括硬件信息。 QString frmMain::getWMIC(const QString &amp;cmd) { //获取cpu名称:wmic ... //获取cpu线程数:wmi...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,304
精华内容 521
关键字:

wmi硬盘序列号