Grab desktop in silverlight

VIDEO  YOUTUBE :  http://www.youtube.com/watch?v=Mp6pgL2bDDk

EN: In the last video i showed an example of how to stream the webcam and desktop I know I said that would show the application, but I'm trying to solve a memory leak, and for now i will not disclose yet that particular code until it is corrected. However, after Rene called my attention to some who had doubts in the silvelright community forum, I decided to make a small example of how easily I got the images from the desktop in real time. For this I used a library that is available in codeproject, then compiled this class to be registered for COM interop and set someother settings in the project. In Silverlight project, I had to create a COM object by using the new feature in. Net 4 type "dynamic", for that we must add the dll CSharp to our project, then we just access to the methods that return the desktop image with the mouse as a byte array, and we convert the array for our image and it's done. To create a type of video streaming, i just use Composite.rendereing event, it fires every time your application is rendred, something like 60/frames per second i think, and i just call the com object to give me a new image, and my image source get's updated. Ssource code is below.

PT: No ultimo video mostrei um exemplo de como fazer stream da webcam e desktop eu sei que disse que ia mostrar a aplicação, mas ando a tentar resolver um memory leak, e para já ainda não vou divulgar aquele código enquanto não estiver corrigido. No entanto, e depois de o Rene me ter chamado atenção de umas duvidas que havia no fórum de silverlight, resolvi, fazer um pequeno exemplo de como obtive facilmente as imagens do desktop em tempo real.  Para isso utilizei uma libraria que está disponivel no codeproject, depois compilei essa class para ser registada para COM interop e ajustei alguns settings no projecto. Na aplicação silverlight, so tive que criar um objecto COM através do uso da nova feature em .Net 4 o tipo "dynamic" , para isso temos que adicionar a dll CSharp ao nosso projecto, e depois é so aceder ao méto do que retorna a imagem do desktop com o rato como um array te bytes, converte-mos esse array para  a nossa imagem e já está. Para criar um tipo de streaming de vídeo, eu usei o evento Composite.rendering , ele é accionado sempre que a aplicação é renderizada, algo como 60/frames por segundo penso eu, e em cada vez eu simplesmente chamo o objecto COM para me dar uma nova imagem, e minha imagem no silverlight é actualizada.

SOURCE CODE: http://www.2shared.com/file/11597424/c97f4c63/StreamDesktop.html


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.