Ayuda versión internet explorer

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
nemsis
Mensajes: 7
Registrado: 26 Nov 2009, 19:05

Ayuda versión internet explorer

Mensaje por nemsis »

Hola,

Necesito vuestra ayuda. He leido en varios post, pero en ninguno viene lo que necesito.
Estoy haciendo una aplicación desatendida de un parche del windows. Mi problema es que dependiendo de la versión de internet explorer que tengas se instala uno u otro y necesito que lo compruebe ya que tengo varios ordenadores con diferente versiones.
Hasta ahora lo que he hecho es:

Código: Seleccionar todo

If @OSVersion = "WIN_XP" Then

   RegRead  ( "HKLM\SOFTWARE\Microsoft\Internet Explorer" , "Version" ) = "8" Then
	MsgBox (0,"titulo","Tienes xp e internet explorer8")
	ElseIf RegRead ( "HKLM\SOFTWARE\Microsoft\Internet Explorer" , "Version")  = "7.0" Then
	MsgBox (0,"titulo","Tienes xp e internet explorer7")
	ElseIf RegRead ( "HKLM\SOFTWARE\Microsoft\Internet Explorer" , "Version")  = "6.0" Then
			;MsgBox (0,"titulo","Tienes xp e internet explorer6")
			
EndIf
La prueba está hecha con mensajes para comprobar que funciona. El problema que tengo con esto es que tengo que poner la versión de internet explorer exacta y no en todos los equipos tengo la misma de la 7 o la misma de la 6.
¿Me podéis ayudar?
Muchas gracias. Un saludo.
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Ayuda versión internet explorer

Mensaje por BasicOs »

No se si te he entendido bien que quieres saber la sub-versión exacta del ie?
Lo puedes leer de varias claves como:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Install Check
o
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer versión que te da un nombre largo como 8.0.6001
o bien:

$ver = FileGetVersion("C:\Archivos de programa\Internet Explorer\iExplore.exe")

Puedes almacenar RegRead ( "HKLM\SOFTWARE\Microsoft\Internet Explorer" , "Version" ) dentro de una variable y luego usar los select/case en vez de ifs...

Salu22:)
nemsis
Mensajes: 7
Registrado: 26 Nov 2009, 19:05

Re: Ayuda versión internet explorer

Mensaje por nemsis »

Gracias por tu respuesta BasicOs.
No necesito saber la versión, sino que dependiendo de la versión se instale uno u otro.
Te pongo un caso práctico a ver si se entiende mejor.
Tengo 3 pcs, uno con windows xp y con internet explorer 8, otro con windows xp y con internet explorer 6 y otro con windows 2000 con internet explorer 8.
Lo que necesitaría es que reconociese el windows que lleva que eso es con If @OSVersion = "WIN_XP or WIN_2000" y dentro de cada uno que reconocie si tiene el ie8, el ie6 o el ie7, es decir, que si tiene windows xp con ie8 instale un paquete, si tiene windows xp con ie6 otro y si tiene win 2000 con ie8 otro.

Código: Seleccionar todo


#Lo que viene con ; es lo que no consigo hacer.

If @OSVersion = "WIN_XP" Then
	;If Internet explorer 6.0 
		Run ("IE6-WindowsXP-KB976325.exe")
	;ElseIf Internet explorer 7.0
		Run ("IE7-WindowsXP-KB976325.exe")
	;ElseIf Internet explorer 8.0 	
		Run ("IE8-WindowsXP-KB976325-ESN.exe")
EndIf
If @OSVersion = "WIN_2000" Then
	;If Internet explorer 6.0 
		Run ("IE6-Windows2000-KB976325.exe")
		
	;ElseIf Internet explorer 7.0
		Run ("IE7-Windows2000-KB976325.exe")
	;ElseIf Internet explorer 8.0 	
		Run ("IE8-Windows2000-KB976325.exe")
EndIf

Lo de RegRead ( "HKLM\SOFTWARE\Microsoft\Internet Explorer" , "Version" ) lo he probado, el problema que en la variable copia que tengo internet explorer 8.0.6001.18702, pero no se como indicarselo para que sea algo generico, es decir que si tiene la 8.0.6002.1863 tb lo instale, he probado a igualar a 8.0 la variable, pero no funciona.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Ayuda versión internet explorer

Mensaje por Chefito »

Facil. Si solamente te interesa el primer dígito de la versión, pues coge la cadena y recupera solamente el primer dígito :smt003 .
Hay varias funciones con las que puedes hacer esto. Un ejemplo de dos posibles candidatas:

Código: Seleccionar todo

MsgBox(0,"",int("8.0.6002.1863"))
MsgBox(0,"",StringLeft("8.0.6002.1863",1))
int recupera la parte entera de un número con decimales, y stringleft recupera el número de caracteres que le indiques de una cadena empezando por la izquierda (en este caso le hemos dicho que solo recupere 1).
Para más información miralas en la ayuda.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
nemsis
Mensajes: 7
Registrado: 26 Nov 2009, 19:05

Re: Ayuda versión internet explorer

Mensaje por nemsis »

Gracias por la idea Chefito :smt003 . Lo dejo por si a alguien le sirve.

Código: Seleccionar todo

If @OSVersion = "WIN_XP" Then
	$Version = RegRead  ( "HKLM\SOFTWARE\Microsoft\Internet Explorer" , "Version" )
	$result = StringLeft($Version,1)
		If $result ="6" Then
			Run ("IE6-WindowsXP-KB976325.exe")
		ElseIf $result ="7" Then
			Run ("IE7-WindowsXP-KB976325.exe")
			ElseIf $result ="8" Then
				Run ("IE8-WindowsXP-KB976325.exe")
		EndIf
EndIf
If @OSVersion = "WIN_2000" Then
	$Version = RegRead  ( "HKLM\SOFTWARE\Microsoft\Internet Explorer" , "Version" )
	$result = StringLeft($Version,1)
		If $result ="7" Then
			Run ("IE6-Windows2000-KB976325.exe")
		ElseIf $result ="7" Then
			Run ("IE7-Windows2000-KB976325.exe")
			ElseIf $result ="8" Then
				Run ("IE8-Windows2000-KB976325.exe")
		EndIf		
EndIf
Un saludito
Responder