Testing CD Autoruns without a CD


Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Login/Register
A cura di Davide Bianchi Il CD che si esegue da solo, cioe' dotato di Autorun, ha un'aria sempre molto professionale, ma per provare l'autorun bisogna prima farlo e poi fare il CD... ma si puo' anche fare in modo diverso. Vediamo come.

L'Autorun del CD

Con Windows '95 stato introdotto il concetto di Autorun, in sostanza ogni volta che il cassetto del CD viene chiuso, Windows viene notificato che (forse) un CD e' stato inserito, Windows legge il CD e, se e' definito un Autorun, lo esegue.

Questo e' la gioia ed il dolore piu' o meno di tutti, gioia perche' per lo sviluppatore di software od il distributore di cataloghi su CD e' molto facile inserire un meccanismo di 'autopartenza' a prova di deficiente, cosi' si evita che l'idraulico scemo domandi al piazzista di turno "si ma il catalogo che mi ha dato come devo installarlo sul picci'?", la risposta potrebbe essere: ficcalo dentro e guarda.

Per l'utente qualche volta e' una gioia, qualche altra volta un po' meno, nel senso che a volte non ve ne frega niente di far partire il programma, state facendo un'altra cosa.

Per lo sviluppatore pero' i problemi sono:

  1. Scrivere l'autorun in modo che avvii il programma/catalogo
  2. Provarlo
Quest'ultimo poi e' particolarmente gravoso perche' se non si fa' il CD l'autorun non lo si prova, se si fa' il CD e poi l'autorun non funziona si butta via il CD...

Nel corso di questa FAQ si vedra':

  1. come fare l'autorun
  2. come provare l'autorun usando un floppy disk (!)
In effetti (per quanto sembri strano), Windows ha tutto predisposto per utilizzare l'autorun su qualunque supporto, purche' rimovibile, quindi anche un floppy potrebbe avere l'autorun, solo che per ovvi motivi, il supporto e' direttamente attivabile solo per i CD.

Fare l'autorun

L'autorun sostanzialmente e' solo un file di testo (quindi lo si puo' produrre anche con un volgarissimo Notepad), denominato AUTORUN.INF, posto nella directory radice (\) del CD (o del floppy) e contenente alcuni comandi "chiave".

Windows verifica se il file esiste dove si aspetta di trovarlo e se contiene quei comandi, se si, e' tutto felice e li esegue, se no, non fa' niente.

Un tipico Autorun e' composto cosi':


[autorun]
open=nomefile.exe
icon=nomicona.ico
Windows avvia automaticamente il programma o il file specificato come open=nomefile, windows cerca il file indicato relativamente alla directory dove si trova l'autorun, quindi rispetto alla directory radice del CD.

L'attributo icon=nomefile.ico consente di specificare l'icona da attribuire al CD quando e' inserito e Windows lo visualizza nella Gestione Risorse. E' anche possibile indicare un file .BMP o .EXE come 'icona', se il file contiene piu' di una icona occorre specificare quale utilizzare aggiungendo il numero dell'icona dopo il nome del file separato da una virgola (la prima icona e' la numero 0).

Per esempio:


[autorun]
open=\files\bin\setup.exe
icon=\files\resources\icons.dll,2
Indica di avviare il file 'setup.exe' posto in \files\bin, ed utilizza come icona la 3a (la prima e' 0) icona del file \files\resources\icons.dll.

Aggiungere opzioni al CD

E' possibile specificare diverse 'funzioni' da aggiungere al menu' che si attiva con il tasto destro del mouse sul CD. Per esempio potrebbe essere interessante avere 'a portata di mouse' i comandi per visualizzare il 'readme' del CD, o per eseguire l'installazione di una utility o cose cosi'.

Per aggiungere una funzione al tasto destro occorre aggiungere due righe all'autorun:


shell\verb\command=filename.exe
shell\verb=Menu Item Name
Cioe': shell\verb\command specifica quale programma o comando eseguire, mentre shell\verb indica come chiamare il comando da mostrare nel menu'.

Per esempio le linee seguenti aggiungono il comando 'Visualizza Readme' nel menu', collegando la voce al file README.TXT aperto con Notepad:


shell\verb\command=notepad.exe readme.txt
shell\verb=Visualizza Readme
Normalmente il comando di default per un CD dotato di autorun e' Autoplay, e' possibile modificare questa impostazione, facendo quindi eseguire al doppio click quello che vogliamo noi, aggiungendo il comando


shell=verb
Dove verb indica il comando che vogliamo eseguire (nell'esempio precedente era 'Visualizza Readme').

Provare l'autorun sui floppy

Come abbiamo visto, la realizzazione di un Autorun non e' una cosa poi cosi' complicata, ma il test dell'autorun lo e', perche' il CD se viene male (cioe' se l'autorun non funziona) tocca buttarlo via.

In realta' pero', l'autorun e' disponibile su tutti i media, compresi i floppy, solo che per ovvie ragioni, e' attivabile solo a comando solo sui CD.
Attivare l'autorun sui floppy consente di testare le operazioni di run in modo molto semplice e riutilizzabile.

Per attivare l'autorun occorre utilizzare l'editor del registro di configurazione (Regedit).

Attenzione: la modifica del registro di configurazione e' una operazione piuttosto delicata, e' consigliabile effettuare un backup prima di ogni modifica al registro.

Aperto il Regedit, andiamo a modificare la chiave


HKEY_CURRENT_USER\ 
   Software\
      Microsoft\
         Windows\
            CurrentVersion\
               Policies\
                  Explorer\
                     NoDriveTypeAutoRun
la chiave e' di tipo binario, e' composta da 4 byte, il primo e' un bitmask che identifica quali drive devono eseguire l'autorun, gli altri 3 byte dovrebbero essere a 0.

Il bitmask e' specificato in questo modo:

Tipo Bit
DRIVE_UNKNOWN 0
DRIVE_NO_ROOT_DIR 1
DRIVE_REMOVABLE 2
DRIVE_FIXED 3
DRIVE_REMOTE 4
DRIVE_CDROM 5
DRIVE_RAMDISK 6
Se un bit e' settato, il drive corrispondente non utilizza l'autorun, di solito il valore di questo byte e' 223 (DF hex), che significa che sono settati i bit 0,2,4 e 7, cioe' i drive di tipo UNKNOW, REMOVABLE e REMOTE non utilizzeranno l'autorun (il bit 7 non e' documentato, il che mi fa pensare ad un "riservato per usi futuri").

Quello che dobbiamo fare noi e' de-settare il bit 2 per attivare l'autorn sui dischi di tipo 'rimovibile', quindi sui floppy.

Un rapido calcolo ci dice che il bit 2 valie 4, quindi 223-4=219 (DB hex). Impostiamo quindi a DB il valore del byte per attivare il floppy.

A questo punto dovremo riavvare la macchina perche' la modifica abbia effetto.

Attenzione: molti floppy drive non segnalano l'inserimento o la rimozione dei dischetti, quindi la semplice attivazione della features non e' sufficiente, perche' il nostro autorun parta, dobbiamo anche informare Windows che il dischetto e' dentro.
Per fare questo e' sufficiente aprire le "Risorse del Computer" e premere F5 per aggioranre la visualizzazione.

L'HTML come autorun

La maggioranza delle volte che qualcuno tira fuori l'autorun e' per far visualizzare una pagina HTML come "copertina" di un CD.

Questo si puo' fare, ma non e' molto consigliabile. Principalmente perche' funziona solo se l'utente ha un browser "predefinito" installato e configurato, e, checche' voi ne pensiate, esiste un sacco di gente che non ce lo ha.

La maggior parte delle volte poi, non e' possibile mettere come "open" la pagina HTML, il browser non verra' avviato.

La cosa migliore da fare e' sempre quella di utilizzare un programma eseguibile (.exe) come argomento dell'autorun, se vogliamo avviare una pagina HTML utilizziamo


[autorun]
open=start pagina.htm
La chiamata a start funziona pero' solo nel caso in cui il browser sia configurato correttamente sulla macchina, in caso contrario l'utente vedra' una alquanto curiosa descrizione di errore.


Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.

1 message this document does not accept new posts
Eladamri By Eladamri - posted 09/12/2010 17:25

Eventualmente, si puo' usare anche una "chiavetta" USB, al posto del floppy, e' piu' rapido, ti evita di modificare il registro e non sei limitato a 1,44 MB.

--
Eladamri


Previous Next


Davide Bianchi, works as Unix/Linux administrator for an hosting provider in The Netherlands.


Do you want to contribute? read how.  
 


This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.


This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.

This site isn't optimized for vision with any specific browser, nor it requires special fonts or resolution.
You're free to see it as you wish.

Web Interoperability Pleadge Support This Project
Powered By Gojira