Comment obtenir le numéro unique (numéro de série/ID) du processeur (CPU), SCSI, Display et IDE en utilisant un programme C++ autre que WMI et ASM?Comment obtenir le numéro de série du disque dur
Répondre
Depuis que vous mentionnez WMI, je suppose que vous travaillez sur Windows. Recherche GetVolumeInformation().
cela ressemble à quelque chose pour le logiciel de licence, GetVolumeInformation() retourner le volume série qui change chaque fois que le disque est formaté et est un changement trivial dans le logiciel. Le numéro de série du fabricant serait plus utile. – hplbsh
Sous Windows, vous pouvez obtenir des informations de CPU de la variable d'environnement * PROCESSEUR _ **, vous pouvez analyser le volume numéro de série de vol, l'adresse MAC de itinéraire impression
Si vous voulez faire multi plate-forme (et si c'est pour la licence de logiciel) alors une plate-forme open source comme Linux soulève le problème à un tout autre niveau de toute façon et nécessite une approche différente. Cependant, vous pouvez toujours obtenir beaucoup d'informations en analysant la sortie des outils standard.
Vous devriez vraiment considérer WMI. Dans l'ancien temps, le BIOS aurait été utile mais tout a été remplacé par le HAL. CodeProject est toujours vaut la peine de chercher dans des cas comme celui-ci.
Le lien est du code C#, la question est balisée en C++. – atoMerz
Le dessous est le code que j'utilise pour récupérer le numéro de série du disque dur pour un jeu, de sorte que les tricheurs sont définitivement interdits (et ils ne peuvent pas se remettre en sans obtenir un nouveau disque!):
string GetMachineID()
{
// LPCTSTR szHD = "C:\\"; // ERROR
string ss;
ss = "Err_StringIsNull";
UCHAR szFileSys[255],
szVolNameBuff[255];
DWORD dwSerial;
DWORD dwMFL;
DWORD dwSysFlags;
int error = 0;
bool success = GetVolumeInformation(LPCTSTR("C:\\"), (LPTSTR)szVolNameBuff,
255, &dwSerial,
&dwMFL, &dwSysFlags,
(LPTSTR)szFileSys,
255);
if (!success) {
ss = "Err_Not_Elevated";
}
std::stringstream errorStream;
errorStream << dwSerial;
return string(errorStream.str().c_str());
}
Bien qu'il est un bug potentiel après quoi, si Windows est installé sur un lecteur autre que C:\
, c'est une solution facile.
AVERTISSEMENT! Au lieu du numéro de série du disque dur, cette solution vous donne un numéro de série de volume qui est assez différent. –
@JustShadow Il n'est pas possible de récupérer le numéro de série du * disque dur * réel dans Windows sans utiliser d'outils spécialisés pour chaque fabricant. Cela récupère le "numéro de série" que Windows vous donne en tant que lecteur série, par conséquent cette réponse est valide. – cybermonkey
Voici une solution complète: https://stackoverflow.com/questions/24049367/how-do-i-get-the-disk-drive-serial-number-in-cc/48741695#48741695 Il encapsule les appels WMI, et aucun outil supplémentaire requis –
- 1. Comment utiliser C# pour obtenir le numéro de série du disque dur?
- 2. Quels sont les moyens d'obtenir le numéro de série du disque dur sans WMI?
- 3. Pour protéger le logiciel en accédant au numéro de série du disque dur
- 4. Obtenir le numéro de série du disque dur (et pas le volume) sur Vista Ultimate 64 bits
- 5. Hdd Numéro de série
- 6. Mise en série Nombre de disque dur fourni par le fabricant par PHP
- 7. Comment obtenir le numéro de série de la clé USB en C#
- 8. Comment obtenir le numéro de série des disques durs?
- 9. arrêter un disque dur
- 10. Appel Pinvoke pour obtenir le numéro de série de Windows?
- 11. Comment afficher un tableau de doubles sur le disque dur?
- 12. Recherche du numéro de série du lecteur USB sans WMI
- 13. Partage de votre disque dur partagé
- 14. Consommation d'UC équivalente pour l'analyse du disque dur
- 15. Une méthode plus rapide pour obtenir le numéro de série du volume?
- 16. Récupération du numéro de série d'un clavier USB sous Windows
- 17. Lecture du numéro de série du périphérique USB en C#
- 18. Disque dur PC virtuel couvrant plusieurs fichiers?
- 19. Serveur VMWare: Disque dur virtuel Type
- 20. Comment obtenir le numéro de série à partir du symbole MC 3000 ou de tout périphérique Symbol
- 21. Windows Mobile, comment obtenir ID et série?
- 22. Application web Django - comment accéder au disque dur local?
- 23. Comment détecter si un lecteur spécifique est un disque dur?
- 24. Comment collecter la taille du disque dur et l'espace disponible ou utilisé dans linux cli?
- 25. Get H/D Numéro de série (Not Volumn Serial Number) pour IDE et SATA
- 26. Numéro de série Colonne dans ListView
- 27. Obtention de la taille de cluster d'un disque dur (via le code)
- 28. La structure de la base de données et le disque dur cherchent la confusion
- 29. un tableau de Restitution doubles dans un fichier sur le disque dur
- 30. Comment puis-je obtenir le numéro du mois de l'année et le numéro de la semaine dans C#?
Vous devez au moins ajouter la plate-forme. –