Non molto tempo fà ho dovuto sviluppare un'applicazione che integrasse un filmato Flash e interagisse con esso. Vediamo come realizzare un'applicazione del genere:

Per prima cosa dobbiamo aggiungere nella toolbox (casella degli strumenti) di Visual Studio i controlli Shockwave ActiveX, quindi tasto destro sulla toolbox -> Aggiungi Scheda e assegnargli un nome.

Ora bisogna generare un InterOp Asembly che vi permetterà di usare il controllo ActiveX nel vostro Form. Per fare questo, tasto destro sulla nuova scheda creata nella toolbox -> Scegli elementi -> Componenti COM e aggiungere 'Shockwave Flash Object'.

Prima di fare il drag di questo nuovo controllo sul vostro form bisogna sapere che VS2008 così come il suo predecessore VS2005 non aggiunge automaticamente i riferimenti COM necessari per l' OLE Automation quindi per rimediare a questa situazione bisogna aggiungere il riferimento a OLE Automation COM nel vostro progetto.
Per fare questo, da Esplora Soluzioni espandere il vostro progetto in questione, tasto destro su Riferimenti -> Aggiungi riferimento e nella scheda COM selezionare 'OLE Automation' e fare OK.
Ora draggando il controllo sul form noterete che Visual Studio aggiungerà alcuni nuovi riferimenti al vostro progetto. Questi sono gli InterOp Assembly per il controllo ActiveX Shockwave Flash Object Player.
Create una funzione e caricate il filmato flash in questo modo:

string path = System.Environment.CurrentDirectory;
path += @"\prova.swf";
axShockwaveFlash1.LoadMovie(0,path);
axShockwaveFlash1.Play();


Ricordate di aggiungere l'.swf nella vostra directory di Debug prima di testare.
Spostiamoci ora in Macromedia Flash e vediamo come far interagire il vostro .swf. Per mandare dati da un filmato Flash verso la vostra applicazione c'è bisogno di una chiamata alla funzione FSCommand. Questa funzione richiede 2 parametri opzionali: comando e parametri.








Per fare un esempio ho creato in Flash 3 bottoni (non mi dilungo a spiegare come perchè questo non è un tutorial su Flash):

Nell'evento on (press) dell'action script del primo bottone ci ho inserito:

on (press) {
    fscommand("Bottone","uno");
}

Adesso abbiamo bisogno di raccogliere i dati inviati dal filmato Flash.
Per fare questo incominciamo nell'aggiungere un nuovo gestore di eventi in questo modo:

this.axShockwaveFlash1.FSCommand += new AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEventHandler(this.axShockwaveFlash1_FSCommand);

e la sua relativa funzione:

private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
{
label1.Text = "E' stato premuto: " + e.command.ToString() + " " + e.args.ToString();
}


Eseguiamo la nostra applicazione:

Continua a leggere!

Il Patch Day di settembre porta con sé quattro patch per 8 vulnerabilità critiche che coinvolgono Windows Media Player, Windows Media Encoder, Microsoft Office e Microsoft Windows GDI+ (graphics device interface)

Puntuale come ogni mese, arriva il Patch Day di Microsoft portando con sé quattro patch indirizzate a otto vulnerabilità critiche che coinvolgono Windows Media Player, Windows Media Encoder, Microsoft Office e Microsoft Windows GDI+ (graphics device interface).

Il primo bollettino critico MS08-052 riporta cinque vulnerabilità che affliggono Microsoft Windows GDI+ e che permettono l'esecuzione di codice da remoto nel caso un utente tentasse di visualizzare tramite un software "contaminato" o siti Web malevoli una immagine creata opportunamente per ottenere l'exploit. Le vulnerabilità, critiche sotto Windows XP, Windows Server 2003, Vista e Windows Server 2008, si differenziano per il tipo di immagine utilizzata come vettore di attacco (VML, EMF, GIF, WMF o BMP).

Il secondo bollettino critico MS08-053 espone una vulnerabilità insita in Windows Media Encoder 9, più precisamente all'interno del controllo ActiveX WMEX.DLL installato da Windows Media Encoder 9 Series, ed in grado di permettere l'esecuzione di codice arbitrario da remoto nel caso un utente acceda a pagine Web create con intenti malevoli. La vulnerabilità risulta critica sotto Microsoft Windows 2000, Windows XP e Windows Vista.

Il terzo bollettino critico MS08-054 appare relativo ad un bug evidenziato in Windows Media Player 11 ed in grado di permettere l'esecuzione di codice da remoto nel caso un utenti effettui lo streaming di un file audio opportunamente creato da un server Windows Media. La debolezza riguarderebbe il modo con cui il client gestisce le playlist server-side (SSPL) e non sarebbe stata riscontrata nelle versioni precedenti del player multimediale.

L'ultimo bollettino critico MS08-055 riporta una vulnerabilità in Microsoft Office e più precisamente in Microsoft Office OneNote 2007. La falla potrebbe permettere l'esecuzione di codice da remoto nel caso un utente cliccasse su di un URL opportunamente confezionata e associato a OneNote. Una volta preso possesso del sistema, un utente malintenzionato potrebbe installare al suo interno programmi, visualizzare, modificare o eliminare dati, oppure creare nuovi account con tutti i privilegi.

Continua a leggere!






Download: Chrome Safari






Download: Red Textured






Download: Mint textured






Download: LimeGreen Textured






Download: Blue Textured







Download: Black textured







Download: Tango Chrome

  • Installazione su Windows XP:
  • Individuare la directory: C:\Documents and Settings\”vostro nome utente”\Impostazioni Locali\Dati applicazioni\Google\Chrome\Application\0.2.149.29\Themes Cercare il file “default.dll” e rinominarlo come “backupdefault” (senza .dll), copiare il file contenuto nel download (default.dll) nella directory “themes” di Google Chrome. 
  • Installazione su Windows Vista:
  • Individuare la directory: C:\Users\”vostro nome utente”\AppData\Local\Google\Chrome\Application.2.149.29\Themes Cercare il file “default.dll” e rinominarlo come “backupdefault” (senza .dll), copiare il file contenuto nel download (default.dll) nella directory “themes” di Google Chrome.

Continua a leggere!

CSS: Un'alternativa per non usare gli hacks

Tutti gli sviluppatori di siti web sanno che alcuni stili vengono visualizzati in modo diverso nei vari browser. Per correggere questa cosa, solitamente si usano i 'css hacks'.
Voglio farvi vedere un'ottima soluzione alternativa per non utilizzare gli 'hacks' tramite javascript:

<script type="text/javascript">
var cssFix = function(){
var u = navigator.userAgent.toLowerCase(),
addClass = function(el,val){
if(!el.className) {
el.className = val;
} else {
var newCl = el.className;
newCl+=(" "+val);
el.className = newCl;
}
},
is = function(t){return (u.indexOf(t)!=-1)};
addClass(document.getElementsByTagName(’html’)[0],[
(!(/opera|webtv/i.test(u))&&/msie (d)/.test(u))?(’ie ie’+RegExp.$1)
:is(’firefox/2&#8242;)?’gecko ff2&#8242;
:is(’firefox/3&#8242;)?’gecko ff3&#8242;
:is(’gecko/’)?’gecko’
:is(’opera/9&#8242;)?’opera opera9&#8242;:/opera (d)/.test(u)?’opera opera’+RegExp.$1
:is(’konqueror’)?’konqueror’
:is(’applewebkit/’)?’webkit safari’
:is(’mozilla/’)?’gecko’:”,
(is(’x11&#8242;)||is(’linux’))?’ linux’
:is(’mac’)?’ mac’
:is(’win’)?’ win’:”
].join(" "));
}();
</script>

Dopo l'esecuzione, possiamo utilizzare questi stili per i browser:

.ie — Tutte le versioni di IE;
.ie8 — IE 8.х;
.ie7 — IE 7.x;
.ie6 — IE 6.x;
.ie5 — IE 5.x;
.gecko — Tutte le versioni di Firefox;
.ff2 — Firefox 2;
.ff3 — Firefox 3;
.opera — Tutte le versioni di Opera;
.opera8 — Opera 8.x;
.opera9 — Opera 9.x;
.konqueror — Konqueror;
.safari — Safari.

Per esempio: se si vuole che il testo in Opera sia rosso potremmo scrivere:

.opera div {
    color:red;
}

Continua a leggere!

Spesso trovare plugin photoshop per questi scopi richiede tempo e molti di questi sono in versione valutativa. Ecco perchè voglio segnalarvi Big Huge Labs una raccolta di tools online gratuiti che permettono di divertirvi con le vostre foto, creando effetti puzzle, posters, calendari, collage e molto altro.
Tutto è molto personalizzabile grazie all'utilizzo delle Flickr API. Il sito è in inglese ma i tools a disposizione sono facilmente utilizzabili e intuitivi.
Vorrei invitare chiunque ne conoscesse altri di segnalarli, grazie :)

Continua a leggere!