Windows utilizza come salvaschermo i file .SCR, i quali non sono altro che dei normali programmi .EXE rinominati.
Livecode è lo strumento più adatto per creare un programma del genere.
Prima di tutto creiamo lo stack principale che useremo solo quando programmiamo con Livecode, del tipo:
e mettiamo le pulsante Impostazioni un semplice:
on mouseUp go to stack "impostazioni"end mouseUp
mentre per il pulsante Avvia salvaschermo mettiamo il seguente codice:
on mouseUp set the stato of card 1 of stack "salvaschermo" to "test" go to stack "salvaschermo"end mouseUp
Ora creiamo un sotto-stack che rappresenterà il salvaschermo e lo chiameremo salvaschermo. Facciamolo con lo schermo nero e con l'ora e la data che fluttuano a caso per lo schermo, quindi ci basterà fare il fondo nero dello stack, mettere un campo di testo e mettere un messaggio ciclico da chiamare, ad esempio ciclos:
on opencard put the screenrect into schermo put item 3 of schermo into tx put item 4 of schermo into ty switch the stato of me case "test" put round(tx / 2) into tx put round(ty / 2) into ty set the rect of this stack to 0,0,tx,ty break case "preview" set the rect of this stack to (0,0,tx / 10,ty / 10) set the loc of this stack to tx/2,ty/2 break default set the rect of this stack to the screenrect end switch ciclosend opencard
on ciclos set the text of field 1 to ( (the long system time) & " - " & (the long system date)) set the width of field 1 to (the formattedwidth of field 1) set the foregroundcolor of field 1 to (random(255),random(255),random(255)) put the width of me into tx put the height of me into ty move field 1 to (random(tx),random(ty)) without waiting send ciclos to me in 1 secend ciclos
on mouseDown if the stato of me is not "test" then cancellatuttoend mouseDown
on mouseMove if the stato of me is not "test" then cancellatuttoend mouseMove
on rawkeyDown cancellatuttoend rawkeyDown
on cancellatutto if the stato of me is "test" then cancelmessage ciclos close this stack else quit end ifend cancellatutto
on cancelmessage myMex repeat for each line templ in the pendingmessages if item 3 of templ is myMex then cancel item 1 of templ end if end repeatend cancelmessage
Come vedete ho messo anche i messaggi per controllare se stiamo facendo delle prove o se lo screensaver è lanciato da windows. Se lo stiamo utilizzando noi la proprietà personalizzata stato ha il valore "test", e quindi lo screensaver se ne va solo premendo un pulsante, altrimenti anche muovendo il mouse. Stessa cosa quando chiudiamo il programma: in un caso chiude solo lo screensaver, nell'altro chiude tutto (quit).
levare il programma.
Il nostro screensaver animatodovrebbe avere un aspetto simile a questo:
A questo punto il nostro screensaver è quasi pronto, quando viene posto trai gli screensaver dentro la cartella C:\Windows\System32 viene chiamato con delle opzioni:
- /p vuol dire che vuole la preview piccola nello schermo
- /c vuol dire che vuole la finestra di configurazione (può essere seguito da numeri tipo /c:75829)
- /s vuol dire modalità salvaschermo normale
on PreOpenStack put char 1 to 2 of $1 into temp switch temp case "/p" set the stato of card 1 of stack "salvaschermo" to "prewiev" hide me go to stack "salvaschermo" break case "/c" hide me go to stack "Impostazioni" break case "/s" hide me set the stato of card 1 of stack "salvaschermo" to empty go to stack "salvaschermo" default #qui possiamo mettere altre azioni da fare all'avio end switch end PreOpenStack
Ora possiamo creare l'eseguibile .EXE, rinominarlo in .SCR e metterlo nella cartella C:\Windows\System32. Provato e funziona, voi ora potete sbizzarrirvi, mettendo la vostra foto, una frase a caso letta da internete, effetti grafici, ecc.




Nessun commento:
Posta un commento