Jaque-mate.
Tu código es más estable al no usar WMI, pero algo extenso (para mi gusto) si lo implementas en stubs o similares.
De todas formas, seguro que ay otro método más sencillo y sin utilizar WMI para detectarlo... hay que investigar más!!
--------------
Por cierto, puedes discriminar un poco más la función, me explico:
"*VIRTUAL*" = VirtualPC
"*VMWARE*" = VMWare
"*VBOX*" = VirtualBox
Puedes hacer que la función de vuelva un Integer, ejemplo:
Así el usuari podrá determinar si finaliza su ejecución solo si nos encontramos en VMWARE o solo en VirtualPC, etc...
Saludos, muy buen código.
Tu código es más estable al no usar WMI, pero algo extenso (para mi gusto) si lo implementas en stubs o similares.
De todas formas, seguro que ay otro método más sencillo y sin utilizar WMI para detectarlo... hay que investigar más!!
--------------
Por cierto, puedes discriminar un poco más la función, me explico:
"*VIRTUAL*" = VirtualPC
"*VMWARE*" = VMWare
"*VBOX*" = VirtualBox
Puedes hacer que la función de vuelva un Integer, ejemplo:
Código (vb) [Seleccionar]
Select Case True
Case sData Like "*VIRTUAL*"
IsVirtualPCPresent = 1
Case sData Like "*VMWARE*"
IsVirtualPCPresent = 2
Case sData Like "*VBOX*"
IsVirtualPCPresent = 3
Case Else
IsVirtualPCPresent = 0
End Select
Así el usuari podrá determinar si finaliza su ejecución solo si nos encontramos en VMWARE o solo en VirtualPC, etc...
Saludos, muy buen código.