| no movie - just text {general}
|
Come conoscere il numero
assegnato al Cd dal sistema
Se realizziamo un Cd dobbiamo decidere se far partire
l'eseguibile direttamente dal Cd stesso oppure
se installarlo sull'hard disk dell'utente.
Mentre su piattaforma Macintosh sono rari i Cd che
installano l'eseguibile
sul disco rigido dell'utente, su piattaforma
Windows è consuetudine includere nel Cd un installer
che copia l'eseguibile sul disco rigido, crea l'icona del Cd e
inserisce nel menu di avvio il nostro programma.
Questa scelta in verità presenta qualche vantaggio,
non ultimo la velocità di avvio del programma.
Se decidessimo di seguire questa consuetudine ci si
presenterebbe un problema: conoscere la lettera assegnata
dal sistema al nostro Cd.
Mentre su piattaforma Macintosh il Cd mantiene il nome
che noi gli abbiamo attribuito, su Windows il sistema decide
quale lettera assegnare al Cd. Questo avviene in base alle
periferiche installate per cui la lettera non sarà mai uguale per
ogni utente.
Se installiamo il programma sul disco rigido dell'utente
abbiamo quindi bisogno di uno script che ci permetta di conoscere
la lettera attribuita dal sitema al Cd.
Lo script realizzato ci permette
di conoscere la lettera (o il nome) del Cd, di sapere se il
programma è stato avviato da Cd o da disco rigido e
quindi di regolarci di conseguenza.
Una sola avvertenza:
sul Cd ci deve essere presente una cartella (directory) con un
nome non comune (ad esempio "abcdef" con dentro un file
anch'esso con un nome non comune (es. kxywz.abc).
===> COME FUNZIONA
Controlliamo insieme la struttura di questo scirpt:
1) controlliamo se il nostro Cd sta girando su Mac o su Windows
on startMovie
if the machineType = 256 then
Windows
else
Macintosh
end if
end
2) se stiamo girando su Mac controlliamo se il nome del
disco da cui stiamo avviando il programma corrisponda
al nome del nostro Cd. Se il nome
corrisponde vuol dire che l'utente ha avviato
il programma dal Cd, se non
corrisponde, vuol dire che stiamo avviando
il programma dal disco rigido.
on Macintosh
if (drive() = #NomeDelCd) then
-- sostituire #nomeDelCd con il nome del
nostro CD
go movie (the pathName & #nomedelFileDiAvvio)
--sostituire #nomedelFileDiAvvio con il file d'inizio del Cd
exit
else
set dove = "nomeDelCd:nomedelFileDiAvvio"
-- sostituire i nomi
go movie dove
end if
end
3) questa funzione ci permette di sapere il nome
del disco da cui è stato
avviato il programma
on drive
set delim = the itemDelimiter
set the itemDelimiter = ":"
set qDrive = item 1 of the pathName
set the itemDelimiter = delim
return qDrive
end
4) Se stiamo girando su piattaforma Windows dobbiamo
prima sapere se il
programma è stato avviato da Cd o da
disco rigido, poi nel caso il programma
fosse stato lanciato da disco rigido conoscere il nome della lettera
assegnata dal sitema al Cd.
on Windows
set x = driveWIN()
if x = "" then
go to movie (the pathName & #nomeDelFileDiAvvio)
-- sostituire il nome
del file
exit
else
set dove = x & ":\nomeDelFileDiAvvio" -- sostituire il nome del file
go movie dove
end if
end
5) questa funzione sfrutta la funzione
di Lingo getNthfileNameInFolder che
permette di conoscere i nomi dei file
contenuti in una data cartella.
Tramite questa funzione possiamo sapere
se esiste un drive con una cartella
di nome "abcdef" con dentro un file di
nome kxywz. Se si verificano queste
condizioni possiamo ricavarci la lettera del Cd.
on driveWIN
repeat with i = 68 to 91 -- le lettere da C a Z in codice ASCII
set nome = getNthfileNameInFolder(numToChar (i) & ":\abcdef\",1)
if char 1 to 5 of fname = "kxywz" then exit repeat
end repeat
if i < 91 then
set lettera = numToChar(i)
else
set lettera = ""
end if
return lettera
end
By Tonino - digitaly.com 1999
|