国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

電腦的唯一標識符,VC++如何讀出?

這篇具有很好參考價值的文章主要介紹了電腦的唯一標識符,VC++如何讀出?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

電腦有沒有唯一標識符,查了一些資料,開始以為CPUID可以,但是實際上統(tǒng)一類型的CPU用的是相同的ID:

GetCPUID()
{
	// note: 在cmd中,輸入命令字:wmic CPU get ProcessorID,即可獲得本機處理器ID
	CString strCPUID;
	unsigned long s1, s2;
	__asm {
		mov eax, 01h
		xor edx, edx
		cpuid
		mov s1, edx
		mov s2, eax
	}
	strCPUID.Format("%08X%08X", s1, s2);
	iniWriter.WriteString("CPU", "ProcessorID", strCPUID.GetBuffer());
	return strCPUID;
}

那么BIOS ID是否是唯一的呢?主板上的BIOS芯片是主板上唯一貼有標簽的芯片,如果電腦開機時登錄bios可以看到里面的一些基本信息:

獲取電腦唯一機器碼,c++

bios編號也可以用win cmd的命令獲得,為一個4個字節(jié)的編碼,但這個編碼指的是電腦的bios版本,也不是唯一的。

獲取電腦唯一機器碼,c++

	CString strBIOSSerialNo, strTmp;
	WinExec("cmd.exe /c wmic bios get serialnumber > mypc.log", SW_HIDE);
	Sleep(1000);
	FILE* fpc = fopen(".\\mypc.log", "r");
	char ch[20] = {};
	int flag = 0;

	char msg[30] = "";
	char buf[40];

	int numread = fread(buf, sizeof(char), 34, fpc);
	numread = fread(buf, sizeof(char), 16, fpc);
	for (int i = 0; i < 16; i++)
	{
		if (buf[i] == 0x00 || buf[i] == 0x20 || buf[i] == 0x0d || buf[i] == 0x0a || buf[i] == 0xcc)
			continue;
		else
			strTmp.Format("%c", buf[i]);
		strBIOSSerialNo += strTmp;
	}
	
	SetDlgItemText(IDC_STATIC2, strBIOSSerialNo.GetBuffer());

如何獲取產(chǎn)品序列號呢?命令行方式可以如下獲得:

獲取電腦唯一機器碼,c++

VC++獲得方法:

	// 獲取電腦產(chǎn)品ID
	//=============================================================================
	WinExec("cmd.exe /c systeminfo > mypcinfo.log", SW_HIDE);
	Sleep(6000);

	char lineBuff[256];
	CString strProductTmp = _T("產(chǎn)品 ID:"), strSysInfo;

	FILE* fps = fopen(".\\mypcinfo.log", "r");
	while (!feof(fps))
	{
		fgets(lineBuff, 256, fps);

		strTmp.Format(_T("%s"), lineBuff);
		if (strTmp.Find(strProductTmp) != -1)
		{
			strSysInfo = strTmp.Mid(strProductTmp.GetLength() + 1);
			strSysInfo.Replace(_T(" "), _T(""));
			break;
		}
	}
	fclose(fps);
	SetDlgItemText(IDC_STATIC3, strSysInfo.GetBuffer());
	WinExec("cmd.exe /c del /F mypcinfo.log", SW_HIDE);
	remove("mypcinfo.log");

?或者使用ifstream去讀文件:

	// 獲取電腦產(chǎn)品ID
	//=============================================================================
	CString strSysInfo;
	WinExec("cmd.exe /c systeminfo > mypcinfo.log", SW_HIDE);
	Sleep(5000);

	char buff[256];
	CString strProductTmp = _T("產(chǎn)品 ID:");
	ifstream infile("mypcinfo.log");
	while (!infile.eof())
	{
		infile.getline(buff, 100);
		strTmp.Format(_T("%s"), buff);
		if (strTmp.Find(strProductTmp) != -1)
		{
			strSysInfo = strTmp.Mid(strProductTmp.GetLength() + 1);
			strSysInfo.Replace(_T(" "), _T(""));
			break;
		}
	}
	infile.close();
	SetDlgItemText(IDC_STATIC3, strSysInfo.GetBuffer());
	WinExec("cmd.exe /c del /F mypcinfo.log", SW_HIDE);
	remove("mypcinfo.log");

?文章來源地址http://www.zghlxwxcb.cn/news/detail-650208.html

?

到了這里,關于電腦的唯一標識符,VC++如何讀出?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 使用序列(Sequence)在 Oracle 數(shù)據(jù)庫中管理唯一標識符

    目錄 1. 創(chuàng)建序列 2. 使用序列生成唯一值 3. 序列的常見應用場景 結論 簡介: 在 Oracle 數(shù)據(jù)庫中,序列(Sequence)是一種強大的工具,用于生成唯一的數(shù)值標識符。序列提供了一種簡單而高效的方式來管理表的主鍵或其他需要唯一值的列。本文將介紹 Oracle 中序列的用法,包括

    2024年02月05日
    瀏覽(31)
  • 華為---OSPF Router-ID:OSPF路由器標識符(Router Identifier)簡介及示例配置---(OSPF Router-ID如何產(chǎn)生?為什么必須在整個路由選擇域內(nèi)保持唯一)

    華為---OSPF Router-ID:OSPF路由器標識符(Router Identifier)簡介及示例配置---(OSPF Router-ID如何產(chǎn)生?為什么必須在整個路由選擇域內(nèi)保持唯一)

    ? OSPF Router-ID :路由器標識符(Router Identifier),在OSPF域中唯一地標識一臺路由器。 ? ? ? ? OSPF協(xié)議使用Router-ID作為路由器的身份標示,如果在啟動這些路由協(xié)議時沒有指定Router-ID,則路由協(xié)議進程可能無法正常啟動;在OSPF區(qū)域中必須保證Router-ID唯一,不然OSPF無法正確識別

    2024年02月05日
    瀏覽(24)
  • 【Linux初階】進程的相關概念 | 進程管理 & 查看進程 & 獲取進程標識符 & fork進程創(chuàng)建

    【Linux初階】進程的相關概念 | 進程管理 & 查看進程 & 獲取進程標識符 & fork進程創(chuàng)建

    ???hello,各位讀者大大們你們好呀?? ????系列專欄:【Linux初階】 ????本篇內(nèi)容:進程的概念,進程管理初識(描述、管理進程),查看進程的基礎方法,獲取進程標識符(pid、ppid),fork進程創(chuàng)建(分流應用) ????作者簡介:計算機海洋的新進船長一枚,請多多

    2023年04月27日
    瀏覽(29)
  • 錯誤C2065:未聲明的標識符 - 解決C++中的未聲明標識符錯誤

    錯誤C2065:未聲明的標識符 - 解決C++中的未聲明標識符錯誤 在C++編程中,錯誤C2065是一種常見的編譯錯誤,它表示使用了一個未聲明的標識符。通常情況下,這個錯誤是由于忘記包含必要的頭文件或者拼寫錯誤導致的。本文將介紹如何解決這個錯誤,并提供相應的源代碼示例

    2024年02月06日
    瀏覽(93)
  • 初識標識符

    abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implementis import instanceof int interface long native new package private protected public return strictfp short static super switch synchronized this throw throws transient try void volatile while ? java所有的組成

    2024年02月11日
    瀏覽(92)
  • go學習-指針 標識符

    go學習-指針 標識符

    1.指針 (1).基本介紹 1)基本數(shù)據(jù)類型,變量存的值,也叫值類型 2)獲取變量的地址用,比如 var num int ,獲取num的地址:num 3)指針類型,變量存的是一個地址,這個地址指向的空間存的才是真正值,比如: var ptr *int =num 4)獲取指針類型所指的值,使用*,比如:var *ptr int,使用

    2024年02月11日
    瀏覽(84)
  • 解決C++遇到的未定義標識符 “string“、未定義標識符 “cout“、“name”: 未知重寫說明符錯誤

    目錄 解決C++遇到的未定義標識符 \\\"string\\\"、未定義標識符 \\\"cout\\\"、“name”: 未知重寫說明符錯誤 1. 未定義標識符 \\\"string\\\" 2. 未定義標識符 \\\"cout\\\" 3. “name”: 未知重寫說明符錯誤 總結 1. 未定義標識符 \\\"string\\\" 2. 未定義標識符 \\\"cout\\\" 3. “name”: 未知重寫說明符錯誤 在C++編程中,我們可

    2024年02月06日
    瀏覽(636)
  • 第6關:Python的標識符

    2023年04月09日
    瀏覽(103)
  • C# 標識符命名規(guī)則和約定

    目錄 命名規(guī)則 命名約定 C# 編碼約定 命名約定 帕斯卡拼寫法 駝峰式大小寫 如何使用模式匹配以及 is 和 as 運算符安全地進行強制轉換 標識符是分配給類型(類、接口、結構、記錄、委托或枚舉)、成員、變量或命名空間的名稱。 有效標識符必須遵循以下規(guī)則: 標識符必須

    2024年02月12日
    瀏覽(89)
  • ora-12154無法解析指定的連接標識符

    ora-12154無法解析指定的連接標識符

    用戶反映查詢的時候報錯ora-12154 這個系統(tǒng)只做歷史數(shù)據(jù)查詢使用,使用并不平凡,該數(shù)據(jù)庫曾做過一次服務器間的遷移。 用戶描述,所有oracle客戶端查詢該視圖都報tns錯誤,一般ora-12154會發(fā)生在連接數(shù)據(jù)庫時,因為tns配置不正確而報錯,但是這個報錯發(fā)生在進行查詢過程中

    2024年01月23日
    瀏覽(75)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包