A volte firefox (con google toolbar) in windows XP si pianta quando viene lanciato. O meglio fa uscire la finestra di logon piccola e senza campi di input, e quindi e' inutilizzabile.
E' quindi necessario restartare tutto e sperare.
Siccome sono programmatore e fare sempre le stesse cose mi secca, ho fatto una procedura automatica che sega il processo e lo restarta (e fa pure il login :-). Quindi io con pochi tasti, se firefox non parte lo riesco ad avviare ugualmente senza perdere molto tempo. Per farlo uso una procedura scritta in un macrolinguaggio (autohotkey).
Tutto, comunque, dipende da quante volte firefox decide di piantarsi.
Una volta mi e' capitato che almeno per una decina o ventina di volte di seguito mi si presentasse la finestra di richiesta login inutilizzabile e quindi di veder rifare il kill e successivo reload, e anche di dover intervenire manualmente perche' a volte la finestra di login appariva mezza buona e mezza no, quindi la macro riconosceva il nome della finestra e pensando che fosse quella buona tentava il login, che ovviamente poi non funzionava. Il risultato e' che quella volta ho perso qualche minuto per riuscire a caricare firefox.
Ma la causa era che aveva appena fatto un aggiornamento automatico e quindi il reload era piu' lento e dato che la macro ha un timeout predfinito, vedendolo tardare lo ricaricava interrompendo il processo post-aggiornamento e creando cosi' un po' di confusione.
Risultato: dopo un aggiornamento di firefox, meglio usare la procedura manuale per caricarlo e avere un po' di pazienza se si pianta (... uhmmm magari disabilitando temporaneamente la barra di google finche' non termina il processo, va meglio....).
Ecco di seguito il codice "AutoHotKey" della macro, che io ho salvato in un file di nome Firefox_reload.ahk.
Se non desiderate che il login avvenga in modo automatico, per ragioni di sicurezza, togliete le righe
SendInput USERID{TAB}PASSWORD{ENTER}
Sleep 1000
dalla macro. E a quel punto potete togliere anche le graffe.
Anzi quasi quasi ve lo consiglio, perche' io ho introdotto il login automatico ma non so per quanto lo lascero' cosi', visto che e' poco (anzi niente) sicuro avere la pwd in chiaro.
;--------------------------------------------------------------------------------
; Main process
;--------------------------------------------------------------------------------
process, Close, firefox.exe
Sleep 1000
run "C:\Program Files\Mozilla Firefox\firefox.exe"
if ffox_reload_AttivaFinestra("Autenticazione richiesta") == 1
{
SendInput USERID{TAB}PASSWORD{ENTER}
Sleep 1000
SendInput {ENTER} ; --- INVIO a eventuale richiesta ripristino sessione precedente da parte di firefox
}
else
reload
;--------------------------------------------------------------------------------
ffox_reload_AttivaFinestra(nomeFinestra)
{
WinActivate, %nomeFinestra%,
Loop, 10
{
WinWaitActive, %nomeFinestra%, , 1
if ErrorLevel
WinActivate, %nomeFinestra%,
else
return 1
}
return 0
}
exitapp
Il funzionamento della macro (che si capisce benissimo anche dal facile codice, credo) e' il seguente:
- all'avvio della macro essa chiude il processo firefox
- attende un secondo
- lancia nuovamente firefox (mettete il vostro path corretto, perche' funzioni)
- mediante la funzione ffox_reload_AttivaFinestra() attende che appaia a video la finestra di login "Autenticazione richiesta" (se avete la versione in un'altra lingua mettete il titolo della vostra finestra di login)
- se entro 10 cicli, ovvero dieci secondi, la finestra appare, allora essa viene portata in primo piano e vengono inseriti userid e pwd e premuto INVIO
- se la finestra non appare la macro viene ricaricata e il processo sopra descritto viene ripetuto.
Ovvio che se firefox non partira' mai correttamente, anche la macro non terminera' mai, ma non mi sembrava il caso di gestire una simile situazione, dato che in tal caso ognuno attendera' il numero di tentativi che preferisce e poi potra' bloccare manualmente il processo (col tasto destro nella tray area) e procedere a suo (dis)piacimento.
Spero la macro vi sia utile anche solo come idea per qualcosa di simile.
Ciao
Marco