Pregunta

Yo sé que un ya se ha preguntado sobre la generación de un ID único para una máquina, pero mi pregunta es un poco diferente.

Quiero saber si hay otros métodos (llamadas a la API?) Para obtener información sobre el hardware y no utilizar WMI. Yo entiendo de MSDN que se introduce en WMI Win2000 por lo que doesnt parece estar disponible en Win98. Tengo una aplicación que tiene que funcionar incluso en Win98 (Sé que es una mierda, pero ¿qué puedo hacer?) Y aún así conseguir información de hardware.

¿Fue útil?

Solución

He hecho esto varias veces para proyectos de concesión de licencias. Para la unidad de utilización número de serie del disco:

private static extern long GetVolumeInformation(string PathName, StringBuilder VolumeNameBuffer, UInt32 VolumeNameSize, ref UInt32 VolumeSerialNumber, ref UInt32 MaximumComponentLength, ref UInt32 FileSystemFlags, StringBuilder FileSystemNameBuffer, UInt32 FileSystemNameSize);

Utilice la VolumeSerialNumber que es devuelto por la función.

Además, es posible que haya pensado en utilizar el ID de producto de Windows (Ubicado en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId). Tenga cuidado, un gran número de usuarios de Windows XP tiene copias piratas y compartir las claves mismo producto.

Otros consejos

Puede combinar información de hardware diferente con el fin de crear una clave única.

Por ejemplo, CPU ID, dirección MAC, etc, etc Usted se recupere, combinarlos, encriptación de las mismas y tiene una representación única de la configuración del hardware de esta máquina.

Trate googlear sobre el tema:. Cómo leer la información de hardware

Por lo que puedo ver que hay un post muy útil en CodeProject: Cómo conseguir Información de hardware (CPU ID, entre placas Info, disco duro de serie, información del sistema, ...) .

Mira a través de la API de Windows Kernel32 y user32 biblioteca. Cuenta con todo tipo de golosinas como EnumDisplayDevices , GetLogicalDrives , GlobalMemoryStatus , GetVolumeInformation , etc, etc me gusta usar PInvoke para navegar la API, ya que me da el código C # envoltorio -. MSDN, pero tendrá todo tan bien en el SDK de Windows

@ respuesta de novatrust con respecto a la serie del disco duro es una buena - pero se puede combinar con más. He proporcionado la <=> enlace API para PInvoke anterior, pero un simple Google debería funcionar tan bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top