Ah.... estoy casi casi logrando lo que quiero, me falta todavía...
Si creo una macro con este contenido:
Código:
Sub verificonumerodeserie()
Dim oWMI As Object, Discos As Object, Disco As Object
Dim bandera, comparo, seriecorrecto
bandera = "Falso"
seriecorrecto = "1475702220"
Selection.TypeText bandera
Selection.TypeParagraph
Set oWMI = GetObject("WINMGMTS:")
Set Discos = oWMI.instancesof("Win32_PhysicalMedia")
For Each Disco In Discos
Selection.TypeText Text:="Serie: " & Disco.SerialNumber
Selection.TypeParagraph
Set Disco = Nothing
Set Discos = Nothing
Set oWMI = Nothing
Dim fs, d, s, t
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvPath)))
Select Case d.DriveType
Case 0: t = "Desconocido"
Case 1: t = "Separable"
Case 2: t = "Fijo"
Case 3: t = "Red"
Case 4: t = "CD-ROM"
Case 5: t = "Disco RAM "
End Select
s = "Unidad " & d.DriveLetter & ": - " & t
s = s & vbCrLf & "NS: " & d.SerialNumber
Selection.TypeText s
Selection.TypeParagraph
comparo = d.SerialNumber
Selection.TypeText "Comparo está en: " & comparo
Selection.TypeParagraph
If comparo = seriecorrecto Then bandera = "Verdadero"
Selection.TypeText "La bandera está en: " & bandera
Selection.TypeParagraph
Next
End Sub
Y sustituyo en:
seriecorrecto = "1475702220"
por cualquiera de los números de serie que obtengo con la macro de recolectar los datos no logro nunca que la bandera quede en Verdadero...
Será que los datos en un caso son string y en otro de otro tipo?
Es decir, con la macro de Word recojo los números de serie del disco, luego quiero poner "a mano" uno de los números correctos y que la macro al leer el número correcto cambie la bandera a verdadero, así después puedo enlazar dentro de un
si bandera es verdadero
tanto la opción diciendo que el programa no está habilitado en ese disco como la opción que deje correr el programa....
qué estará mal?