Programación General > ASM (Ensamblador)

 Como Obtener El Numero De Serie De La Placa

<< < (3/3)

Juan_mg:
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:
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 --- #define _WIN32_DCOM#include &#60;comdef.h&#62;#include &#60;Wbemidl.h&#62;#pragma comment(lib, &#34;wbemuuid.lib&#34;) int main(int argc, char **argv){  CoInitialize(0);  if(CoInitializeSecurity(0, -1, 0, 0, RPC_C_AUTHN_LEVEL_PKT, RPC_C_IMP_LEVEL_IMPERSONATE, 0, EOAC_NONE, 0) != S_OK)  {    return 0;  }  IWbemLocator * pIWbemLocator = 0;  IWbemServices * pWbemServices = 0;  IEnumWbemClassObject * pEnumObject = 0;  BSTR bstrNamespace = (L&#34;root&#092;&#092;cimv2&#34;);  HRESULT hRes = CoCreateInstance (CLSID_WbemAdministrativeLocator, 0, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**) &pIWbemLocator);  if (SUCCEEDED(hRes))  {    hRes = pIWbemLocator-&#62;ConnectServer(bstrNamespace, 0, 0, 0, 0, 0, 0, &pWbemServices);  }  BSTR strQuery = (L&#34;Select * from Win32_BaseBoard&#34;);    BSTR strQL = (L&#34;WQL&#34;);  hRes = pWbemServices-&#62;ExecQuery(strQL, strQuery, WBEM_FLAG_RETURN_IMMEDIATELY,0,&pEnumObject);   ULONG uCount = 1, uReturned;  IWbemClassObject * pClassObject = 0;  hRes = pEnumObject-&#62;Reset();  hRes = pEnumObject-&#62;Next(WBEM_INFINITE,uCount, &pClassObject, &uReturned);  VARIANT v;  BSTR strClassProp = SysAllocString(L&#34;SerialNumber&#34;);  hRes = pClassObject-&#62;Get(strClassProp, 0, &v, 0, 0);  SysFreeString(strClassProp);   _bstr_t bstrPath = &v;  char* strPath=(char*)bstrPath;  if (SUCCEEDED(hRes))  {    MessageBox(0, strPath, &#34;Motherboard Serial ID&#34;, 0);  }  else  {    MessageBox(0, &#34;Error obteniendo&#34;, &#34;Motherboard Serial ID&#34;, 0);  }  VariantClear(&v);  pIWbemLocator-&#62;Release();  pWbemServices-&#62;Release();  pEnumObject-&#62;Release();  pClassObject-&#62;Release();  CoUninitialize();  return 0;}  
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:

Juan_mg:
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:
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:

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa