giovedì 19 luglio 2012

Ritardare partenza di applicazioni

Intro

Il mio PC con Win7 a 64 bit, isuoi 4 GB di RAM, la sua cpu Dual Core ha sempre faticato all'0avvio, lo ho sempre chiamato il mio Diesel.
Nel mio lungo peregrinare, cercqare studiare come velocizzare il tutto ho scoperto, prima di tutto chi mi rallenta il boot, ebbene si si tratta dei miei IM preferiti GTalk e Skype.
Continuando a cercare ho visto che , come al solito, MS-DOS e i suoi script possono aiutarmi, allora perchè non condividere ciò che ho trovato e testato sul mio PC?


Prima di tutto è necessario l'uso del classico CCleaner per eliminare l0avvio automatico di ciò che non ci interessa e di ciò che vogliamo ritardare (la funzione è disponibile nel tab Strumenti sotto la voce Avvio).

Oltre a disattivare tutto ciò che non mi interessa vada in automatico (KIES, il client Citrix, il controllo aggiornamento automtico dei driver ...) ho bloccato l'avvio automatico di chi mi sono apprestato a ritardare (Skype e Gtalk).

Script

Col mio fido Notepad++ ho creato il seguente file:
REM Imposta ritardi
set gtalkdelay=300
set skypedelay=300

REM Avvia Gtalk
timeout /t %gtalkdelay%
start /MIN /B C:\"Program Files (x86)"\Google\"Google Talk"\googletalk.exe /autostart

REM Avvia Skype
timeout /t %skypedelay%
start /MIN /B C:\"Program Files (x86)"\Skype\Phone\Skype.exe /nosplash /minimized

REM Esce dalla finestra
exit

Che ora andiamo a spiegare nei punti salienti, ovvero:
timeout /t %skypedelay%
start /MIN /B C:\"Program Files (x86)"\Skype\Phone\Skype.exe /nosplash /minimized

Comando Timeout

timeout è un comando MS-Dos, sembra risalente a WinVista, i precedenti non lo avevano, controllandone l'help leggiamo:
C:\Documents and Settings\mprocida>timeout /?

TIMEOUT [/T] timeout [/NOBREAK]

Description:
    This utility accepts a timeout parameter to wait for the specified
    time period (in seconds) or until any key is pressed. It also
    accepts a parameter to ignore the key press.

Parameter List:
    /T        timeout       Specifies the number of seconds to wait.
                            Valid range is -1 to 99999 seconds.

    /NOBREAK                Ignore key presses and wait specified time.

    /?                      Displays this help message.

NOTE: A timeout value of -1 means to wait indefinitely for a key press.

Examples:
    TIMEOUT /?
    TIMEOUT /T 10
    TIMEOUT /T 300 /NOBREAK
    TIMEOUT /T -1

Le spiegazioni sono poche a questo punto io scegliendo la linea di comando "timeout /t %skypedelay%" indico solo i numeri di secondi da attendere e piuttosto che inserire un valore ho optato per usare una varibile, ma se al posto di %skypedelay% avessi scritto 300 il risultato sarebbe stato esattaente lo stesso.

Comando Start

Start è un comando ms-dos  presente già in Win 95. Visto il link che vi ho lasciato non mi dilungo nell'help di Windows, che è veramente lungo.
Scegliendo la linea di comando:
start /MIN /B C:\"Program Files (x86)"\Skype\Phone\Skype.exe /nosplash /minimized
indico al comando start die eseguire la nuova finestra minimizzata con /MIN, usando /MAX la avrei avuta massimizzata invece; l'opzione /B fa in modo che non venga aperta una nuova finestra dos, in alcuni casi, che ora non mi vengono in mente, potrebbe essere comodo, se non essenziale; commento a parte per la peril comando da eseguire con i suoi parametri, nel mio esempio "C:\"Program Files (x86)"\Skype\Phone\Skype.exe /nosplash /minimized" per creare tale comando mi sono appoggiato totalmente a CCLEANER di cui sopra . Andando nella finestra Strumenti > Avvio e cliccandoci sopra con il tasto destro ho scelto la voce "salva come testo" ciò mi ha creato un file che di default si chiama startup.txt ed aprendolo col sempre fido Notepad++ ho potuto copiare la stringa su indicata con tutte le sue opzioni, se applicabili.

Epilogo

Sicuramente il mio PC Diesel non ha acwuisito quelle doti da scattista che gli permettono un bootstrap in 6 secondi, ma sono riuscito ad avere maggiore usabilità del computer subito dopo l'avvio dello stesso.