Thanks to CRK suggestion I made a better AutoIt3 script https://www.autoitscript.com/site/autoit/downloads/ which would continue with all New Hardware Wizard windows accepting non signed drivers, Cancelling WinXP CD prompts and skipping multiple options (connect to internet, etc), so as to get Mouse and Keyboard detected and installed. The compiled autoit script EXE should be copied to the "Start" (within "Start Menu") folder to be automatically executed. The script strings MUST be adapted to the local windows language. And probably some Alt-LETTER combinations too. My sample works in SPANISH WinXP. Hope it helps somebody else, after having mouse and keyboard functioning, script must be deleted (or moved to other folder):
$asistente= "Asistente para hardware nuevo encontrado" ;"Found New Hardware Wizard"
$instalacion= "Instalación de hardware"
$archivos= "Archivos necesarios"
$cambio= "Cambio de configuración del sistema"
while 1
sleep(200)
if WinExists( $cambio) then
WinActivate( $cambio)
sleep(200)
Send("!n") ; (press Alt-n)
endif
if WinExists( $instalacion) then
WinActivate( $instalacion)
sleep(200)
$text=WinGetText( $instalacion)
if StringInStr( $text, "El software que está instalando para este hardware") then ;"The software..."
Send("!c")
endIf
; MsgBox($MB_OK, "Autoit Status", $text & stringinstr( $text, "está"), 2 ) ; sleep(2000)
endif
if WinExists($archivos) then
WinActivate($archivos)
sleep(200)
$text=WinGetText( $archivos)
if StringInStr( $text, "Se necesita el archivo") then
ControlClick( "Archivos necesarios", "", "[ID:2]" )
endIf
endif
if WinExists( $asistente) then
WinActivate( $asistente)
sleep( 200)
$text=WinGetText( $asistente)
if StringInStr( $text, "Desea que Windows se conecte a Windows Update") then ;"Can Windows connect to Windows Update to search for software?"
; ControlCommand( $asistente, "", "[ID:8104]", "Check", "")
sleep(150)
; ControlClick( $asistente, "", "[ID:12324]")
Send("!n")
sleep(100)
Send("!t")
sleep(250)
endif
$text=WinGetText( $asistente)
if StringInStr( $text, "Este asistente le ayudará a instalar software para:") then ;"This wizard"
sleep(150)
Send("!t")
sleep(250)
endif
$text=WinGetText( $asistente)
if StringInStr( $text, "No se puede instalar este hardware") then ;"Cannot Install this Hardware"
ControlCommand( $asistente, "", "[ID:1030]", "UnCheck", "")
sleep(200)
;ControlClick( $asistente, "", "[ID:12325]")
Send("{ENTER}")
sleep(200)
endif
$text=WinGetText( $asistente)
if StringInStr( $text, "desea que haga el asistente?") then ;"What do you want the wizard to do?"
ControlCommand( $asistente, "", "[ID:1049]", "Check", "")
sleep(200)
ControlClick( $asistente, "", "[ID:12324]")
sleep(200)
endif
$text=WinGetText( $asistente)
if StringInStr( $text, "Se recomienda que se conecte a Internet para que el asistente") then
ControlCommand( $asistente, "", "[ID:1065]", "Check", "")
sleep(200)
ControlClick( $asistente, "", "[ID:12324]")
sleep(200)
endif
$text=WinGetText( $asistente)
if StringInStr( $text, "Finalizar para cerrar") then ;"Click Finish to close the wizard."
ControlClick( $asistente, "", "[ID:12325]")
sleep(250)
endif
endif
wend