set cmd = createobject("wscript.shell")
Set SA = CreateObject("Shell.Application")
set mishell = CreateObject("Scripting.FileSystemObject")

mfcfolder = cmd.ExpandEnvironmentStrings("%USERPROFILE%\MFC\")
toolsfolder = cmd.ExpandEnvironmentStrings("%USERPROFILE%\MFC\Tools\")
userfolder = cmd.ExpandEnvironmentStrings("%USERPROFILE%\MFC\")

motor1 = cmd.ExpandEnvironmentStrings("%PROGRAMFILES%\Oracle\VirtualBox\VBoxManage.exe")
motor2 = cmd.ExpandEnvironmentStrings("%PROGRAMFILES%\Sun\VirtualBox\VBoxManage.exe")
mifile = cmd.ExpandEnvironmentStrings("%TEMP%\install.txt")
explor = cmd.ExpandEnvironmentStrings("%SYSTEMROOT%\explorer.exe")


If mishell.FileExists(motor1) Then
  FAB = 1
Else
  If mishell.FileExists(motor2) Then
    FAB = 2
  Else
    FAB = 0
  End If
End If

If FAB=0 Then
  MsgBox "ERROR: No se detecta la instalación de Virtual Box.",vbCritical,"Instalación de Agente MFC Virtualizado"
  MsgBox "Saliendo del Instalador.",vbInformation,"Instalación de Agente MFC Virtualizado"
  WScript.Quit
End If

IF FAB=1 Then
  motor = motor1
Else
  motor = motor2
End If

mensaje ="¿Desea instalar el Agente MFC Virtualizado?"
resp = MsgBox(mensaje,vbYesNo + vbQuestion,"Instalación de Agente MFC Virtualizado")

if Resp = 6 then

  If not (mishell.FolderExists(mfcfolder)) Then
    mishell.CreateFolder(mfcfolder)
  end if

  If not (mishell.FolderExists(mfcfolder)) Then
    mensaje ="ERROR: No se han podido crear las carpetas necesarias para la instalación." & vbNewLine & vbNewLine & "Por favor, compruebe que tiene permisos suficientes para realizar la instalación" & vbNewLine & "e inténtelo de nuevo más tarde."
    MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
    MsgBox "Saliendo del Instalador.",vbInformation,"Instalación de Agente MFC Virtualizado"
    WScript.Quit
  End IF

  If not (mishell.FolderExists(toolsfolder)) Then
    mishell.CreateFolder(toolsfolder)
  end if

  If not (mishell.FolderExists(toolsfolder)) Then
    mensaje ="ERROR: No se han podido crear las carpetas necesarias para la instalación." & vbNewLine & vbNewLine & "Por favor, compruebe que tiene permisos suficientes para realizar la instalación" & vbNewLine & "e inténtelo de nuevo más tarde."
    MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
    MsgBox "Saliendo del Instalador.",vbInformation,"Instalación de Agente MFC Virtualizado"
    WScript.Quit
  End IF

  If not (mishell.FolderExists(userfolder)) Then
    mishell.CreateFolder(userfolder)
  end if

  If not (mishell.FolderExists(userfolder)) Then
    mensaje ="ERROR: No se han podido crear las carpetas necesarias para la instalación." & vbNewLine & vbNewLine & "Por favor, compruebe que tiene permisos suficientes para realizar la instalación" & vbNewLine & "e inténtelo de nuevo más tarde."
    MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
    MsgBox "Saliendo del Instalador.",vbInformation,"Instalación de Agente MFC Virtualizado"
    WScript.Quit
  End IF


  Set dst1 = SA.NameSpace(userfolder)
  dst1.CopyHere "DATA\User\*", 16

  If not (mishell.FileExists(userfolder & "Lanzador.vbs")) Then
    mensaje ="ERROR: No se han podido copiar los ficheros necesarios para la instalación." & vbNewLine & vbNewLine & "Por favor, compruebe que tiene permisos suficientes para realizar la instalación" & vbNewLine & "e inténtelo de nuevo más tarde."
    MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
    MsgBox "Saliendo del Instalador.",vbInformation,"Instalación de Agente MFC Virtualizado"
    WScript.Quit
  End IF

  Set dst2 = SA.NameSpace(mfcfolder)
  dst2.CopyHere "DATA\MFC\*", 16

  If not (mishell.FileExists(mfcfolder & "mfc.vdi")) Then
    mensaje ="ERROR: No se han podido copiar los ficheros necesarios para la instalación." & vbNewLine & vbNewLine & "Por favor, compruebe que tiene permisos suficientes para realizar la instalación" & vbNewLine & "e inténtelo de nuevo más tarde."
    MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
    MsgBox "Saliendo del Instalador.",vbInformation,"Instalación de Agente MFC Virtualizado"
    WScript.Quit
  End IF

  Set dst3 = SA.NameSpace(toolsfolder)
  dst3.CopyHere "DATA\Tools\*", 16

  If not (mishell.FileExists(toolsfolder & "Desinstalar 64.lnk")) Then
    mensaje ="ERROR: No se han podido copiar los ficheros necesarios para la instalación." & vbNewLine & vbNewLine & "Por favor, compruebe que tiene permisos suficientes para realizar la instalación" & vbNewLine & "e inténtelo de nuevo más tarde."
    MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
    MsgBox "Saliendo del Instalador.",vbInformation,"Instalación de Agente MFC Virtualizado"
    WScript.Quit
  End IF


  comando = "regedit /s """ & mfcfolder & "mfc.reg"""
  cmd.run comando, vbhide, true

  comando = """" & motor & """ import DATA\MFC\MFC.ova"
  cmd.run comando, vbhide, true

  comando = """" & motor & """  modifyvm ""mfc"" --nic1 bridged --bridgeadapter1 ""Sin Definir"""
  cmd.run comando, vbhide, true

  comando = """" & motor & """ modifyvm ""mfc"" --nic2 nat"
  cmd.run comando, vbhide, true

  comando = """" & motor & """ storageattach ""mfc"" --storagectl ""IDE"" --port 0 --device 0 --type hdd --medium """ & mfcfolder & "mfc.vdi"""
  cmd.run comando, vbhide, true

  comando = """" & motor & """ storageattach ""mfc"" --storagectl ""IDE"" --port 0 --device 1 --type hdd --medium """ & mfcfolder & "control.vdi"""
  cmd.run comando, vbhide, true


  comando = """" & motor & """ modifyvm ""mfc"" --memory 64 --vram 6 --cpuexecutioncap 40"
  cmd.run comando, vbhide, true



  cmd.Run "%comspec% /C ipconfig /all > """ & mifile & """",vbhide,true

  set ts = mishell.OpenTextFile(mifile, 1)

  etiqueta="vacio"
  Do While ts.AtEndOfStream <> True

    TextLine = ts.ReadLine
    existe = InStr(TextLine,"Descrip")

    If existe<>0 Then

      des1 = InStr(TextLine,"Loopback")
      des2 = InStr(TextLine,"irtual")
      des3 = InStr(TextLine,"Microsoft")
      des4 = InStr(TextLine,"Tunnel")
      des5 = InStr(TextLine,"TAP-Win")

      If ((des1=0) and (des2=0) and (des3=0) and (des4=0) and (des5=0)) Then
        etiqueta = TextLine
      End If
    End If
  Loop
  ts.Close

  estado = StrComp(etiqueta,"vacio")
  If estado=0 Then
    mensaje ="No se ha encontrado una tarjeta de red compatible." & vbNewLine & vbNewLine & "Por favor, abra la ventana de configuración de la Máquina Virtual" & vbNewLine & "y defina manualmente la configuración de los Adaptadores de Red."
    MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
  Else
    pos = InStr(etiqueta,":")
    pos = pos + 1
    tot = Len(etiqueta)
    pos = tot - pos
    etiqueta = Right(etiqueta,pos)
    etiqueta = Ltrim(etiqueta)
    etiqueta = replace(etiqueta, vbCr, "")

    comando = """" & motor & """ modifyvm ""mfc"" --nic1 bridged --bridgeadapter1 """ & etiqueta & """"
    cmd.run comando,vbhide,true

    mensaje ="Se ha definido la siguiente Tarjeta de Red para comunicarse con las Máquinas Multifunción:" & vbNewLine & vbNewLine & " - " & etiqueta & vbNewLine & vbNewLine & "Si desea utilizar una Tarjeta de Red diferente para esta función, diríjase a la sección de" & vbNewLine & "Configuración de Red de la Máquina Virtual y defínala manualmente."
    MsgBox mensaje,vbInformation,"Instalación de Agente MFC Virtualizado"

  End If

  SA.Open toolsfolder
  WScript.sleep 500
  MsgBox "Fin del Proceso de Instalación.",vbInformation,"Instalación de Agente MFC Virtualizado"


else
  mensaje ="Cancelado el proceso de instalación."
  MsgBox mensaje,vbExclamation,"Instalación de Agente MFC Virtualizado"
end if
