Cerca nel blog

mercoledì 5 agosto 2009

ThinApp Script: modificare l'hosts file di sistema

Di ricente in un progetto con ThinApp mi sono imbattuto nel seguente rompicapo: L'applicazione ThinApp usa un browser per accedere ad un applicazione Web (Tomcat 5) che gira localmente ma che necessita la modifica del file HOSTS per poter funzionare correttamente.

Essendo HOSTS File utilizzato dallo stack TCP/IP del sistema che funziona in kernel-mode una sua modifica dall'interno della bolla thinapp non ha effetto sulla risoluzione del nome ed e' un comportamente by Design; confermato anche da una nota 1008126 della KB di VMware.

SOLUZIONE:
La potente interfaccia API di ThinApp offre una semplice funzione chiamata ExecuteExternalProcess (Comando), ed ecco come e' stata usata:

--------------------------------------------------------------

Function OnFirstParentStart

Const csFind1="vug.it"
Const csFSpec="C:\windows\system32\drivers\etc\hosts"

Dim oFS: Set oFS=CreateObject( "Scripting.FileSystemObject" )
Dim oTS: Set oTS=oFS.OpenTextFile( csFSpec )
Dim nLine: nLine= 0
Dim sLine
Dim nState: nState =0
Do Until oTS.AtEndOfStream
nLine = nLine + 1
sLine = oTS.ReadLine()
If 0 < InStr( sLine, csFind1 ) Then
nState=1
End If
Loop
oTS.Close

if nState < 1 Then
ExecuteExternalProcess("cmd.exe /c ""echo 127.0.0.1 vug.it >> C:\windows\system32\drivers\etc\hosts"" ")
End If

End Function

--------------------------------------------------------------

Enjoy ;-)

Nessun commento: