精华内容
下载资源
问答
  • QT或C++获取cpu序列号

    2021-01-25 10:50:46
    QT或C++获取cpu序列号 一、调用CMD的命令符获取 获取cpu名称:wmic cpu get Name; 获取cpu核心数:wmic cpu get NumberOfCores; 获取cpu线程数:wmic cpu get NumberOfLogicalProcessors; 查询cpu序列号:wmic ...

    QT或C++获取cpu序列号

    一、调用CMD的命令符获取

    1. 获取cpu名称:wmic cpu get Name;
    2. 获取cpu核心数:wmic cpu get NumberOfCores;
    3. 获取cpu线程数:wmic cpu get NumberOfLogicalProcessors;
    4. 查询cpu序列号:wmic cpu get processorid;
    5. 查询主板序列号:wmic baseboard get serialnumber;
      6.查询BIOS序列号:wmic bios get serialnumber;
      7.查看硬盘:wmic diskdrive get serialnumber

    二、QT或C++获取cpu序列号

    1.函数
    QString RegisterDlg::getWMIC(const QString &cmd)
    {
    //获取cpu名称:wmic cpu get Name
    //获取cpu核心数:wmic cpu get NumberOfCores
    //获取cpu线程数:wmic cpu get NumberOfLogicalProcessors
    //查询cpu序列号:wmic cpu get processorid
    //查询主板序列号:wmic baseboard get serialnumber
    //查询BIOS序列号:wmic bios get serialnumber
    //查看硬盘:wmic diskdrive get serialnumber
    QProcess p;
    p.start(cmd);
    p.waitForFinished();
    QString result = QString::fromLocal8Bit(p.readAllStandardOutput());
    QStringList list = cmd.split(" “);
    result = result.remove(list.last(), Qt::CaseInsensitive);
    result = result.replace(”\r", “”);
    result = result.replace("\n", “”);
    result = result.simplified();
    return result+“A”;

    }
    2.调用
    RegisterDlg::RegisterDlg(QWidget *parent)
    : QDialog(parent)
    {
    ui.setupUi(this);
    setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
    m_EncryptLib= new QLibrary(QCoreApplication::applicationDirPath()+"/EncryptDll.dll");

     m_cpuid = getWMIC("wmic cpu get processorid"); // 获取cpu序列号
     ui.Edt_key->setText(m_cpuid);
    

    }
    3.获取其它的硬件信息
    getWMIC 的参数分别录入前面提到的 “CMD的命令符”即可获取。

    展开全文
  • c++获取CPU序列号\C盘卷标号源代码,这个是序列号的,卷标号的看注释,把注释掉的恢复。cpu序列号是唯一标识,可用于开发注册码。里面还有bstr与字符串的转换,在注释里
  • C++获取计算机的CPU序列号,硬盘序列号(无需管理权限),网卡MAC地址,在vs2005环境下编译通过,已在win10,win7系统测试通过。
  • C++获取CPU序列号和C盘卷标号

    千次阅读 2016-11-18 15:55:02
    //bstr_t("SELECT * FROM win32_Processor"),//获取CPU序列号 WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); if (FAILED(hres)) { cout ; pSvc->Release()...

    主要用到两个类win32_Processor、win32_logicaldisk在MSDN中可以查看到用法和示例,这里是根据示例修改的。


    #define _WIN32_DCOM
    #include <iostream>
    using namespace std;
    #include <comdef.h>
    #include <Wbemidl.h>
    
    # pragma comment(lib, "wbemuuid.lib")
    
    int main(int argc, char **argv)
    {
    	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 1;                  // 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 1;                    // 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 1;                 // 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 1;                // 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 1;               // 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_logicaldisk where DeviceID=\"c:\""),//获取C盘卷标号
    		//bstr_t("SELECT * FROM win32_Processor"),//获取CPU序列号
    		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 1;               // 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;
    
    		// Get the value of the Name property
    		hr = pclsObj->Get(L"VolumeSerialNumber", 0, &vtProp, 0, 0);//获取C盘卷标号
    		//hr = pclsObj->Get(L"ProcessorId", 0, &vtProp, 0, 0);//获取CPU序列号
    		wcout << " OS Name : " << vtProp.bstrVal << endl;
    		VariantClear(&vtProp);
    	}
    
    	// Cleanup
    	// ========
    
    	pSvc->Release();
    	pLoc->Release();
    	pEnumerator->Release();
    	pclsObj->Release();
    	CoUninitialize();
    
    	return 0;   // Program successfully completed.
    
    }
    


    展开全文
  • c++builder获取Cpu序列号代码
  • C++获取电脑CPU序列号及硬盘序列号,采用C++MFC开发的一个小功能,用于生成设备号。
  • C++ 嵌汇编获取CPU序列号\

    热门讨论 2011-03-09 22:35:41
    C++ 嵌汇编获取CPU序列号 C++ 嵌汇编获取CPU序列号
  • 一个C++生成的获取CPU序列号的dll,可供C#调用。源码参见我的博客http://blog.csdn.net/sunny906/article/details/38082189
  • C++ 硬件信息 获取CPU序列号

    万次阅读 2015-04-09 13:38:56
    获取计算机CPU序列号的方法很多,这里采用的是命令行的形式获取,可以获取CPU的序列号,很简单,直接上代码。 【1】头文件 #if !defined(AFX_14BEC153_17B9_47BE_845F_71A27BF26B59__INCLUDED_) #define AFX_...

        获取计算机CPU序列号的方法很多,这里采用的是命令行的形式获取,可以获取CPU的序列号,很简单,直接上代码。


    【1】头文件

    #if !defined(AFX_14BEC153_17B9_47BE_845F_71A27BF26B59__INCLUDED_)
    #define AFX_14BEC153_17B9_47BE_845F_71A27BF26B59__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    
    #include <iostream>
    #include <string>
    #include <windows.h>
    
    using namespace std;
    
    //--------------------------------------------------------------
    //						CPU序列号
    //--------------------------------------------------------------
    BOOL GetCpuByCmd(char *lpszCpu, int len=128);
    
    
    #endif // !defined(AFX_14BEC153_17B9_47BE_845F_71A27BF26B59__INCLUDED_)

    【2】CPP

    #include "stdafx.h"
    #include "CpuID.h"
    
    
    //--------------------------------------------------------------
    //						CPU序列号
    //--------------------------------------------------------------
    BOOL GetCpuByCmd(char *lpszCpu, int len/*=128*/)
    {	
        const long MAX_COMMAND_SIZE = 10000; // 命令行输出缓冲大小	
        WCHAR szFetCmd[] = L"wmic cpu get processorid"; // 获取CPU序列号命令行	
        const string strEnSearch = "ProcessorId"; // CPU序列号的前导信息
    
        BOOL   bret = FALSE;
        HANDLE hReadPipe = NULL; //读取管道
        HANDLE hWritePipe = NULL; //写入管道	
        PROCESS_INFORMATION pi;   //进程信息	
        STARTUPINFO			si;	  //控制命令行窗口信息
        SECURITY_ATTRIBUTES sa;   //安全属性
    
        char			szBuffer[MAX_COMMAND_SIZE + 1] = { 0 }; // 放置命令行结果的输出缓冲区
        string			strBuffer;
        unsigned long	count = 0;
        long			ipos = 0;
    
        memset(&pi, 0, sizeof(pi));
        memset(&si, 0, sizeof(si));
        memset(&sa, 0, sizeof(sa));
    
        pi.hProcess = NULL;
        pi.hThread = NULL;
        si.cb = sizeof(STARTUPINFO);
        sa.nLength = sizeof(SECURITY_ATTRIBUTES);
        sa.lpSecurityDescriptor = NULL;
        sa.bInheritHandle = TRUE;
    
        //1.0 创建管道
        bret = CreatePipe(&hReadPipe, &hWritePipe, &sa, 0);
        if (!bret)
        {
            goto END;
        }
    
        //2.0 设置命令行窗口的信息为指定的读写管道
        GetStartupInfo(&si);
        si.hStdError = hWritePipe;
        si.hStdOutput = hWritePipe;
        si.wShowWindow = SW_HIDE; //隐藏命令行窗口
        si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    
        //3.0 创建获取命令行的进程
        bret = CreateProcess(NULL, szFetCmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
        if (!bret)
        {
            goto END;
        }
    
        //4.0 读取返回的数据
        WaitForSingleObject(pi.hProcess, 500/*INFINITE*/);
        bret = ReadFile(hReadPipe, szBuffer, MAX_COMMAND_SIZE, &count, 0);
        if (!bret)
        {
            goto END;
        }
    
        //5.0 查找CPU序列号
        bret = FALSE;
        strBuffer = szBuffer;
        ipos = strBuffer.find(strEnSearch);
    
        if (ipos < 0) // 没有找到
        {
            goto END;
        }
        else
        {
            strBuffer = strBuffer.substr(ipos + strEnSearch.length());
        }
    
        memset(szBuffer, 0x00, sizeof(szBuffer));
        strcpy_s(szBuffer, strBuffer.c_str());
    
        //去掉中间的空格 \r \n
        int j = 0;
        for (int i = 0; i < strlen(szBuffer); i++)
        {
            if (szBuffer[i] != ' ' && szBuffer[i] != '\n' && szBuffer[i] != '\r')
            {
                lpszCpu[j] = szBuffer[i];
                j++;
            }
        }
    
        bret = TRUE;
    
    END:
        //关闭所有的句柄
        CloseHandle(hWritePipe);
        CloseHandle(hReadPipe);
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
    
        return(bret);
    }
    


    展开全文
  • windows获取CPU序列号的方法

    千次阅读 2019-12-09 09:25:50
    使用C++获取CPU序列号的几种方法命令行方法C++中调用命令行方法 命令行方法 在windows中使用命令行: wmic CPU get ProcessorID C++中调用命令行方法

    使用C++获取CPU序列号的方法

    在windows中使用命令行:

    wmic CPU get ProcessorID
    

    在这里插入图片描述

    展开全文
  • Linux C++(QT) 下获取 CPU 序列号(processor serial number) 亲测(Intel core-i)可用。 #include <cpuid.h> #include <sstream> std::string GetCPUId() { std::string strCPUId; unsigned int...
  • Qt获取CPU序列号(最简单的方式)

    万次阅读 2017-05-17 23:36:08
    前言对于windows系统下获取CPU序列号,网上有很多方式,通过C++调用windows的接口可以实现,不过代码都很复杂,不易理解,并且还还不一定能成功。这里用一种非常简单的方式去获取CPU序列号,通过Qt的接口,代码超级...
  • Qt获取CPU序列号,亲测可用

    千次阅读 2018-02-01 10:08:00
    对于windows系统下获取CPU序列号,网上有很多方式,通过C++调用windows的接口可以实现,不过代码都很复杂,不易理解,并且还还不一定能成功。这里用一种非常简单的方式去获取CPU序列号,通过Qt的接口,代码超级简单...
  • CPU序列号读取 c++

    热门讨论 2012-11-01 14:11:40
    在windows下获取CPU序列号 CPU序列号读取 c++编程
  • 在前面一节,我们了解了C++生成dll
  • 之前我们讨论过如何用C#调用delphi生成的dll来获取计算机的
  • C++获取CPU/硬盘序列号

    千次阅读 2007-01-04 12:41:00
    #include "StdAfx.h"#include "./puiddisk.h"#define _WIN32_DCOM#include iostream>using namespace std;#include comdef.h>#include Wbemidl.h># pragma comment(lib, "wbemuuid.lib")CpuIDDisk::...
  • 调用控制台来获取CPU序列号/硬盘号 不同PC的硬盘数量可能不同 若有多个硬盘,此处的输出将多个硬盘号拼接到了一起 若需拆分可自行修改 #if !defined(AFX_14BEC153_17B9_47BE_845F_71A27BF26B59__INCLUDED_) #define ...
  • C++获取计算机的CPU ID,硬盘序列号等硬件信息

    千次下载 热门讨论 2010-06-11 18:37:23
    C++获取计算机的CPU ID,硬盘序列号等硬件信息,C++获取计算机的CPU ID,硬盘序列号等硬件信息。
  • 详细情况请看例子! 提供LIB文件! 本DLL可以在VC、C++Builder、VB、Delphi、PowerBuilder中使用!
  • c++获取cpu信息方法

    千次阅读 2013-12-14 23:15:19
    PS:此文章是从本人sina博客搬移过来; 此文章好像是我之前 参照一个博客做的测试程序。是谁我找不到作者了。对此。表示对作者表示抱歉;...当然有的也不支持索引CPU序列号; cpuid使用eax作为输
  • c++获取cpu信息

    2014-05-16 12:33:00
    CPUID指令是intel IA32架构下获得CPU信息的汇编指令,可以得到CPU类型,型号,制造商信息,商标信息,序列号,缓存等一系列CPU相关的东西。 2、cpuid指令的使用 cpuid使用eax作为输入参数,eax,e...
  • 总目录传送门 ...获取cpu序列号: windows: linux: 获取磁盘序列号: windows: linux: 联系方式: 作者 郑天佐 QQ 278969898 主页 http://www.camelstudio.cn 邮箱 camelsoft@163.com 博客 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

c++获取cpu序列号

c++ 订阅