• Domingo 28 de Abril de 2024, 13:11

Autor Tema:  Como Obtener El Numero De Serie De La Placa  (Leído 10276 veces)

Juan_mg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Como Obtener El Numero De Serie De La Placa
« en: Domingo 11 de Diciembre de 2005, 05:20 »
0
Hola, estoy haciendo un programa en vc++ 6.0 y quiera saber como puedo obtener el numero de serie de la placa u otro dispositivo Hw.

Por lo que averigue tamien puede ser con ensamblador, qusiera si alguein me puede dar alguna pauta o cualquier tipo de ayuda, lo que estoy buscando es muy importante e urgente.

Gracias por su atencion, les agradeceria bastante su ayuda.

saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #1 en: Domingo 11 de Diciembre de 2005, 13:53 »
0
Con GetVolumeInformation podes obtener el Serial de una particion (no del disco fisico).

Para encontrar el Serial del motherboard y del procesador podes usar este standard:
http://www.dmtf.org/standards/smbios

 :devil:  :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Juan_mg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #2 en: Lunes 12 de Diciembre de 2005, 00:32 »
0
Gracias por la respueta, voy a leer la pagina

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #3 en: Lunes 12 de Diciembre de 2005, 08:36 »
0
De nadas  :devil:  :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Juan_mg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #4 en: Lunes 12 de Diciembre de 2005, 18:23 »
0
Por favor sigan mandando sus comentarios, esto de  obtenre esos datos es muy urgente, gracias.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #5 en: Lunes 12 de Diciembre de 2005, 19:10 »
0
Cita de: "Juan_mg"
Por favor sigan mandando sus comentarios, esto de  obtenre esos datos es muy urgente, gracias.
¿Urgente? ¿Alguien va a morir si no los tenes? La amplia mayoria de los que contestamos trabajamos y estudiamos al mismo tiempo  :comp:

¿Hay algun dato que no puedas obtener? ¿Ya lograste obtener el serial del motherboard y del microprocesador?

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Juan_mg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #6 en: Lunes 12 de Diciembre de 2005, 20:20 »
0
Claro yo se que todos estudian y trabajan, yo igual.

He obtenido el numero de serie del disco duro(del fabricante).

No se como obtener el numero de serie de la placa!!!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #7 en: Lunes 12 de Diciembre de 2005, 20:33 »
0
Cita de: "Juan_mg"
Claro yo se que todos estudian y trabajan, yo igual.

He obtenido el numero de serie del disco duro(del fabricante).

No se como obtener el numero de serie de la placa!!!
Bien. ¿Como obtuviste el numero de serie del disco duro?

Para obtener el del microprocesador y del motheboard podes usar la informacion que figura en el link que te di.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Juan_mg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #8 en: Lunes 12 de Diciembre de 2005, 21:14 »
0
La serie del HD la obtuve con una api, lo hice en vc++.

El problema es que no se casi nada de assembler, lo que estoy haciendo es un proyecto y ya lo tengo q terminar y me esta faltando esa informacion.

He encontrado peor hecho en VB, podria crear la dll y cargarla en mi programa, pero mi codigo no debe funcionar asi.

Si tuvieras alguan otra informacion o algun codigo que ghaga eso, te lo agradeceria bastante.

                                                                                Gracias.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #9 en: Lunes 12 de Diciembre de 2005, 21:25 »
0
Cita de: "Juan_mg"
La serie del HD la obtuve con una api, lo hice en vc++.

El problema es que no se casi nada de assembler, lo que estoy haciendo es un proyecto y ya lo tengo q terminar y me esta faltando esa informacion.

He encontrado peor hecho en VB, podria crear la dll y cargarla en mi programa, pero mi codigo no debe funcionar asi.

Si tuvieras alguan otra informacion o algun codigo que ghaga eso, te lo agradeceria bastante.

                                                                                Gracias.
La informacion esta toda en esa pagina pero si lo tenes en VB, hecho con la API de Windows supongo, ponelo y lo pasamos a C/C++.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Juan_mg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #10 en: Lunes 12 de Diciembre de 2005, 21:31 »
0
Bueno por lo que vi en un programa utilizan el "smbios dmi" para obtener la informacion de la palca y procesador..

Ahi ta el codigoen VB, si me ayudas, te lo agradeceria en el mucho


Private Sub Form_Load()
    Dim objs
    Dim obj
    Dim WMI
    Dim Texto As String

    Set WMI = GetObject("WinMgmts:")
    Set objs = WMI.InstancesOf("Win32_BaseBoard")
   
    For Each obj In objs
        MsgBox obj.SerialNumber
        Texto = obj.SerialNumber
    Next
End Sub

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #11 en: Martes 13 de Diciembre de 2005, 10:38 »
0
Te dejo un codigo que obtiene el serial id del motherboard, el Sandra de SiSoftware obtiene el mismo resultado, esta MUY basado en estas paginas porque no suelo usar WMI:

http://www.codeproject.com/system/Using_WM...asp#xx1027622xx

http://msdn.microsoft.com/library/default....al_computer.asp

Código: Text
  1.  
  2. #define _WIN32_DCOM
  3. #include <comdef.h>
  4. #include <Wbemidl.h>
  5. #pragma comment(lib, "wbemuuid.lib")
  6.  
  7. int main(int argc, char **argv)
  8. {
  9.   CoInitialize(0);
  10.   if(CoInitializeSecurity(0, -1, 0, 0, RPC_C_AUTHN_LEVEL_PKT, RPC_C_IMP_LEVEL_IMPERSONATE, 0, EOAC_NONE, 0) != S_OK)
  11.   {
  12.     return 0;
  13.   }
  14.   IWbemLocator * pIWbemLocator = 0;
  15.   IWbemServices * pWbemServices = 0;
  16.   IEnumWbemClassObject * pEnumObject = 0;
  17.   BSTR bstrNamespace = (L"root\\cimv2");
  18.   HRESULT hRes = CoCreateInstance (CLSID_WbemAdministrativeLocator, 0, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**) &pIWbemLocator);
  19.   if (SUCCEEDED(hRes))
  20.   {
  21.     hRes = pIWbemLocator->ConnectServer(bstrNamespace, 0, 0, 0, 0, 0, 0, &pWbemServices);
  22.   }
  23.   BSTR strQuery = (L"Select * from Win32_BaseBoard");  
  24.   BSTR strQL = (L"WQL");
  25.   hRes = pWbemServices->ExecQuery(strQL, strQuery, WBEM_FLAG_RETURN_IMMEDIATELY,0,&pEnumObject);
  26.  
  27.   ULONG uCount = 1, uReturned;
  28.   IWbemClassObject * pClassObject = 0;
  29.   hRes = pEnumObject->Reset();
  30.   hRes = pEnumObject->Next(WBEM_INFINITE,uCount, &pClassObject, &uReturned);
  31.   VARIANT v;
  32.   BSTR strClassProp = SysAllocString(L"SerialNumber");
  33.   hRes = pClassObject->Get(strClassProp, 0, &v, 0, 0);
  34.   SysFreeString(strClassProp);
  35.  
  36.   _bstr_t bstrPath = &v;
  37.   char* strPath=(char*)bstrPath;
  38.   if (SUCCEEDED(hRes))
  39.   {
  40.     MessageBox(0, strPath, "Motherboard Serial ID", 0);
  41.   }
  42.   else
  43.   {
  44.     MessageBox(0, "Error obteniendo", "Motherboard Serial ID", 0);
  45.   }
  46.   VariantClear(&v);
  47.   pIWbemLocator->Release();
  48.   pWbemServices->Release();
  49.   pEnumObject->Release();
  50.   pClassObject->Release();
  51.   CoUninitialize();
  52.   return 0;
  53. }
  54.  
  55.  

Te comento que hay mas clases que Win32_BaseBoard como por ejemplo Win32_BIOS que tambien tiene un serial number pero eso ya te lo dejo a vos, te recomiendo hacer funciones mas genericas para obtener la informacion que quieras.

 :devil:  :lol:  :ph34r:  :comp:  :hola:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Juan_mg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #12 en: Martes 13 de Diciembre de 2005, 16:49 »
0
Hola, gracias por la respuesta, lo acabo de probar y me bota 2 errores.

e:\program files\microsoft platform sdk\include\dispex.h(947) : error C2061: syntax error : identifier 'DWORD_PTR'

e:\program files\microsoft platform sdk\include\dispex.h(1008) : error C2061: syntax error : identifier 'DWORD_PTR'

me fui al .h y puse

#define DWORD_PTR DWORD *

y me salio otro error:

wbemuuid.lib(wbemprov_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module
Error executing link.exe.

Lo probe en otra maquina y tampoco corria, no podia caragra el lib.

Le añadi el lib que pedia como un archivo al proyecto y me compilo y corrio. Este lib era del vc7, yo lo estoy haciendo en vc6.

Tu en cual lo has compilado???

No se si tambien te salieron estos errores??
Y si los tuvistes como los solucionastes?

Yo tengo instalado el SDK, lo probe en una maquina uqe ni tenia el SDK y no encontraba Wbemidl.h.

Tendria que instalarle algun parche mas??

Muchas gracias por el tiempo que te estas tomando

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Obtener El Numero De Serie De La Placa
« Respuesta #13 en: Martes 13 de Diciembre de 2005, 17:10 »
0
Lo probe primero con el Visual Studio .NET 2003 y despues con el SDK de Windows 2000, con solo poner cl archivo.cpp compila perfectamente.

 :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.