![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
A mi me ha pasado lo que ha vosotros con lo del WMI, incluso al clonar equipos(HD) me clona el sn (supongo que lo lee del registro de sistema).
Que es lo que nunca me falla y siempre me da un número distinto para cada equipo, combinar el WMI & SN(HD) & MAC, así me aseguro que si clonamos cuando compro equipos de las mismas caracteristicas no voy a tener el problema. La MAC nunca la clona pero hay que tener cuidado. Os dejo un ejecutable que genera un .ini con los datos principales del equipo, para que tengais variedad con el número de serie. Ojo que en determinados equipos, si no esta conectado en red, devuelve vacia la MAC. Así que si vais a usar la MAC tenedlo en cta. |
|
#2
|
|||
|
|||
|
Faltaba el fichero, no lo ha pillado
![]() |
|
#3
|
||||
|
||||
|
Si puedes subir el código fuente, mejor.
Si no puede ser, pues igualmente se agradece el aporte. ![]() ![]() ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#4
|
|||
|
|||
|
Cita:
Código:
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
wServicePackMajor As Variant
wServicePackMinor As Variant
wSuiteMask As Variant
wProductType As Byte
wReserved As Byte
End Type
Private Declare Function GetVersionExA Lib "kernel32" _
(lpVersionInformation As OSVERSIONINFO) As Integer
Private Declare Function SHFormatDrive Lib "shell32" _
(ByVal hwnd As Long, ByVal Drive As Long, ByVal fmtID As Long, _
ByVal options As Long) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias _
"GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Function PRINCIPAL()
Close #1
Open App.Path & "\SN-Equipo.ini" For Output Shared As #1
Print #1, GetOsBitness
Close #1
End Function
Private Function devuelve_version() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
Dim nversion As Double
devuelve_version = ""
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
nversion = osinfo.dwMajorVersion + (osinfo.dwMinorVersion / 10)
Select Case (nversion)
Case 5#
devuelve_version = "Windows-2000"
Case 5.1
devuelve_version = "Windows-XP"
Case 5.2
If osinfo.wProductType = 2 Then
devuelve_version = "Server-2003"
Else
If osinfo.wProductType = 1 Then
devuelve_version = "Windows-Home-Server"
Else
devuelve_version = "Windows-XP-Profesional-x64-Edition"
End If
End If
Case 6#
If osinfo.wProductType = 2 Or osinfo.wProductType = 3 Then
devuelve_version = "Server-2008"
Else
devuelve_version = "Windows-Vista"
End If
Case 6.1
If osinfo.wProductType = 2 Or osinfo.wProductType = 3 Then
devuelve_version = "Server-2008-R2"
Else
devuelve_version = "Windows-7"
End If
Case 6.2
If osinfo.wProductType = 2 Or osinfo.wProductType = 3 Then
devuelve_version = "Windows-Server-2012"
Else
devuelve_version = "Windows-8"
End If
Case 6.3
If osinfo.wProductType = 2 Or osinfo.wProductType = 3 Then
devuelve_version = "Windows-8.1"
Else
devuelve_version = "Windows-Server-2012-R2"
End If
Case 10#
If osinfo.wProductType = 2 Or osinfo.wProductType = 3 Then
devuelve_version = "Windows-Server-2016"
Else
devuelve_version = "Windows-10"
End If
Case 11#
If osinfo.wProductType = 2 Or osinfo.wProductType = 3 Then
devuelve_version = "Windows-Server>2020"
Else
devuelve_version = "Windows-11"
End If
End Select
If osinfo.dwMajorVersion = 3 And osinfo.dwMinorVersion = 51 And osinfo.dwBuildNumber = 1057 And osinfo.dwPlatformId = 2 Then
devuelve_version = "Windows NT 3.1"
ElseIf osinfo.dwMajorVersion = 4 And (osinfo.dwMinorVersion = 0 Or osinfo.dwMinorVersion = 10) And osinfo.dwBuildNumber >= 67109814 And osinfo.dwPlatformId = 1 Then
devuelve_version = "Windows 95"
ElseIf osinfo.dwMajorVersion = 4 And osinfo.dwMinorVersion = 0 And osinfo.dwBuildNumber = 1381 And osinfo.dwPlatformId = 2 Then
devuelve_version = "Windows NT 4.0"
Else
'Windows 98? - Not sure what to put here
End If
End Function
Public Function GetOsBitness() As String
Dim cad1 As String * 256
Dim cad2 As String * 256
Dim numSerie As Variant
Dim longitud As Long
Dim flag As Long
Dim unidad As String
Dim ProcessorSet As Object
Dim WMI As Object
Dim CPU As Object
Dim obj As Object
Dim objs As Object
Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("WIN32_BaseBoard")
For Each obj In objs
procid = procid & obj.SerialNumber
If procid < objs.Count Then procid = procid & "."
Next
mbserialnumber = procid
procid = LTrim$(procid)
procid = RTrim$(procid)
'SI NECESITAIS EL PROCESADOR 32 O 64 ACTIVAR PERO ES UN POCO LENTO
'Set ProcessorSet = GetObject("WinMgmts:"). _
'ExecQuery("SELECT * FROM Win32_Processor")
'For Each CPU In ProcessorSet
' GetOsBitness = CStr(CPU.AddressWidth)
'
'Next
GetOsBitness = "ProcesadorSN= " & procid
leeridcomputadora = "Sin Conexión"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each OBJITEM In colNetAdapters
leeridcomputadora = OBJITEM.MACAddress
Exit For
Next
leeridcomputadora2 = leeridcomputadora
While InStr(1, leeridcomputadora2, ":") > 0
leeridcomputadora2 = Left(leeridcomputadora2, InStr(1, leeridcomputadora2, ":") - 1) & Right(leeridcomputadora2, Len(leeridcomputadora2) - InStr(1, leeridcomputadora2, ":"))
Wend
numerie = ""
unidad = ""
If Len(App.Path) > 1 Then
If Mid(App.Path, 2, 1) = ":" Then
unidad = Left(App.Path, 2) & "\"
Call GetVolumeInformation(unidad, cad1, 256, numSerie, longitud, flag, cad2, 256)
End If
End If
GetOsBitness = GetOsBitness & vbCrLf & "MAC= " & leeridcomputadora & vbCrLf & "MACsp= " & leeridcomputadora2 & vbCrLf & "HD-Serial= " & numSerie & vbCrLf & "HD_UNID= " & unidad & vbCrLf & "VER= " & devuelve_version
End Function
|
|
#5
|
||||
|
||||
|
Gracias. He actualizado el hilo de los recursos. Para añadir link al código, al ejecutable y también he puesto la DLL (MSVBVM50.DLL) necesaria para los que no la tienen de VB.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
|||
|
|||
|
Cita:
|
|
#7
|
|||
|
|||
|
pues no me deja, 624Kb
![]() |
|
#8
|
|||
|
|||
|
Certificado de dispositivo en servidor compartido
Hola,
en primer lugar muchas gracias a este foro por la información que se ha publicado en él. Gracias, gracias, gracias. En segundo lugar, una duda sobre el certificado de dispositivo. Tengo desarrollada una aplicación de facturación en PHP. Está alojada en un servidor compartido (en GoDaddy). A la hora de pedir el certificado de dispositivo, no puedo acceder a ningún número de serie del servidor. ¿A alguien le ha sucedido algo parecido? ¿Cómo lo habéis resuelto? Muchas gracias. Un saludo. Nessie. |
|
#9
|
|||
|
|||
|
Cita:
En todo caso tiene pinta de permisos. Cuando haces un php que te funciona en un lado y en otro no, suele ser eso. |
|
#10
|
|||
|
|||
|
Cita:
Hola Ermendalenda. Gracias por la respuesta. No me extraña que no entendieras bien la pregunta: estaba muy mal redactada. La reformulo aquí: El sistema de facturación que desarrollo es una aplicación web desarrollada en PHP. Desde el ordenador cliente se genera la factura. Esa factura se envía al servidor. En el servidor se firma, se genera el XML, se guarda y se envía a hacienda. Por lo tanto, entiendo que el certificado para realizar la firma ha de estar físicamente en el servidor. Quiero usar un certificado de dispositivo. Voy a la web Izenpe para obtener un certificado de dispositivo. En Izenpe me piden el fabricante y el número de serie del dispositivo desde donde se van a emitir/firmar las facturas. Al estar la aplicación alojada en un servidor compartido (un hosting en GoDaddy), no puedo acceder a esa información. Leo en el Anexo III (p.7) de la documentación de Diputación de Gipuzkoa: 4.2.2 Arquitecturas con firma en servidor Se podrá firmar con: certificado de persona física, certificado de representante de entidad, sello de empresa, certificado de autónomo-autónoma o certificado de dispositivo. ¿Hay alguien en la misma tesitura? ¿Alguien está usando un certificado de dispositivo en un servidor compartirdo? Muchas gracias. Buen día. Nessie. |
|
#11
|
|||
|
|||
|
Cita:
*Pide el certificado de dispositivo del equipo que hace la llamada. *Aloja un php en el servidor mandale el xml y el certificado de dispostivo de cada equipo local(que puede estar alojado en una carpeta en vez de enviarlo en cada llamada), al enviar la llamada tienes que especificar con que certificado firrmar. Des esta forrma estas usando un servicio externo pero en realidad estas firmando con tu dispositivo. Por otro lado si quieres asegurarte un pelín más: *La llamada al php que te devuelva el xml firmado y desde el equipo local haces el envio y guarda en el que quieras, mientras puedas dar acceso.. Saludos |
|
#12
|
|||
|
|||
|
Cita:
|
|
#13
|
|||
|
|||
|
Cita:
Hola Ermendalenda, gracias por la respuesta. Sí, algo así estaba pensando yo. Lo que no sé es si pondrán pegas al firmar en un servidor con un certificado de dispositivo que corresponde a la máquina cliente. (Técnicamente funciona, ya lo tengo programado) Veremos. Un saludo y gracias. |
|
#14
|
|||
|
|||
|
Cita:
https://www.gipuzkoa.eus/documents/2.../Anexo+III.pdf Página 5: Cita:
|
|
#15
|
|||
|
|||
|
Hola,
Como ampliación a lo anterior, recibí email de TicketBAI-Gipuzkoa en el que se me indicaba: Cita:
Hice la consulta a TicketBAI-Bizkaia (Batuz) sobre si en este territorio también se va a permitir la firma en servidor con certificado de dispositivo. Estoy a la espera de respuesta. Saludos |
|
#16
|
|||
|
|||
|
Hola Sistel, gracias por la respuesta. Creo que el documento al que haces referencia es un Anexo III antiguo. En la web de TicketBai lo tienen archivado en Versiones Anteriores. En la última versión del Anexo III, en el punto 4.2.2. pone que sí se puede usar un certificado de dispositivo en el servidor. Un saludo y gracias. |
|
#17
|
|||
|
|||
|
Cita:
Ojo porque me parece que lo que estás empleando es lo que TicketBAI llama "Arquitecturas con firma en servidor". Y, en esos casos, no es válido emplear certificado de dispositivo. Saludos |
|
#18
|
|||
|
|||
|
Cita:
Hola, Sistel, gracias por la respuesta. Leo en el Anexo III (p.7) de la documentación de Diputación de Gipuzkoa: 4.2.2 Arquitecturas con firma en servidor [...] Se podrá firmar con: certificado de persona física, certificado de representante de entidad, sello de empresa, certificado de autónomo-autónoma o certificado de dispositivo. Gracias. Un saludo. Nessie. |
|
#19
|
||||
|
||||
|
Hola a todos.
Tengo una duda sobre los suplidos. En teoria en hacienda dicen que no es objeto de TBAI, es decir no hay que enviarlos. ¿Que estáis haciendo vosotros?, los estáis enviando como operaciones no sujetas o no los estáis enviando. |
|
#20
|
||||
|
||||
|
Cita:
Lo de clonar el equipo y que mantenga el nº de serie anterior me parece muy raro ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice | newtron | Internet | 3716 | 19-01-2026 20:01:34 |
| Como utilizar la ayuda del nuevo Sistema Operativo | gluglu | Humor | 3 | 24-09-2007 09:39:05 |
| Aplicacion Agencia De Viajes | ArdiIIa | Varios | 9 | 20-01-2007 16:49:53 |
| El Vasco Aguirre | Al González | La Taberna | 5 | 26-05-2006 09:22:28 |
| Microsoft ha lanzado su nuevo sistema operativo | DarkByte | Humor | 0 | 25-01-2004 09:21:14 |
|