那麼,我只是需要一種方法來獲得Windows ComputerID(基於硬件),一個不會更改的ID或類似的東西,除非您在PC中進行硬件更改,否則不可更改。Qt中的ComputerID
回答
Qt不提供這樣的功能。您只需從現有硬件(如CPU,已安裝的硬盤和/或MAC地址)計算出此值。這些方法都不能爲您的問題提供完全令人滿意的解決方案。
使用CPU作爲基於硬件的ID,您可以使用匯編程序命令CPUID
:http://en.wikipedia.org/wiki/CPUID,http://www.sandpile.org/ia32/cpuid.htm提供一些詳細信息。
QByteArray CPU_Vendor_Name()
{
char Vendor[13];
_asm
{
// EAX = 0: Get CPU manufacturer
XOR EAX, EAX
CPUID
MOV EAX, EBX
MOV Vendor[0], al
MOV Vendor[1], ah
SHR EAX, 16
MOV Vendor[2], al
MOV Vendor[3], ah
MOV EAX, EDX
MOV Vendor[4], al
MOV Vendor[5], ah
SHR EAX, 16
MOV Vendor[6], al
MOV Vendor[7], ah
MOV EAX, ECX
MOV Vendor[8], al
MOV Vendor[9], ah
SHR EAX, 16
MOV Vendor[10], al
MOV Vendor[11], ah
MOV Vendor[12], 00
}
return QByteArray(Vendor);
}
這將返回所有英特爾處理器的「GenuineIntel」和AMD處理器的「AuthenticAMD」。這是毫無用處的,但通過EAX寄存器中的其他參數,您可以獲得有關處理器的詳細信息(詳細型號,功能等)。您可以使用它來計算一個ID(例如:SHA(Vendor, Model, BrandID, CPUCount)
)等。但請記住,相同的處理器將始終導致相同的ID。
您可以使用MAC地址(= SHA(Vendor, ..., MAC)
)來豐富您的ID,但MAC地址可以更改,但平均計算機不太可能頻繁使用。
如果您想要實施某種複製保護,請記住每個複製保護都可能被破解,因此您不應該使用非常複雜的保護來限制您的用戶使用軟件。
我意識到這是一篇舊文章,但是我遇到了這個文檔,不得不發佈它,因爲它解釋了CPUID以及從芯片中提取CPU信息的過程。並不是說@沃爾夫岡帕斯奇格在任何方面都不正確。作爲一個新手,他的回答是有道理的,但是一開始我沒有看到一個輕微的抽象層次。也許這可以幫助其他newbs太...這是文件從英特爾:
http://download.intel.com/design/PentiumIII/applnots/24512501.pdf
如果鏈路發生故障或不再可用,搜索英特爾AP-909應用筆記。此外,這種聯繫是有一定的幫助太:
https://software.intel.com/en-us/forums/topic/308483
享受!
- 1. Qt中的dotnetbar
- 2. qT中的glMultiDrawArrays?
- 3. Qt中的KeyPressEvent
- 4. Qt中的Audiocallback
- 5. Qt 5 QT中的未知模塊:uitools
- 6. Qt Qt中的信號和插槽
- 7. Windows中的Qt Designer與Qt Creator
- 8. Qt 5 - Qt Quick 2中的QWidget
- 9. Recenter QT/QML地圖中的Qt 5
- 10. Qt中
- 11. Qt中
- 12. Qt中
- 13. Qt中
- 14. Qt中
- 15. Qt中
- 16. Qt中
- 17. Qt中
- 18. Qt中
- 19. Qt中
- 20. Qt中
- 21. Qt中
- 22. Qt中的OpengGL glDrawBuffers()?
- 23. Debian中的Qt + OpenCV
- 24. Qt中的JPEG庫
- 25. Qt 5.6中的QtCharts
- 26. Python中的TreeView + QT
- 27. Qt Creator中的Gotoline
- 28. Qt Creator中的XAudio2
- 29. Valgrind的Qt Creator中
- 30. Qt的mousemoveevent + Qt的:: LeftButton
我不知道Qt提供任何此類功能。也許你可以根據MAC地址做一些事情? – Bart
@無需更改硬件即可更改MAC地址。 –
@Kazuma您希望基於哪個硬件ID?處理器?磁盤?內存?網絡接口? GPU? –