Pergunta

Eu tenho uma página ASP.Net que tem um botão que, quando clicado gostaria de tirar um screenshot do PC do usuário e enviá-lo para um servidor.

Eu estou ok com a escrita de algum tipo de programa de escuta para ser executado no servidor para aceitar solicitações para receber estas imagens. Onde eu sou um pouco confuso é a melhor maneira de obter o PC do usuário para enviar a imagem. Será que isso precisa ser feito escrevendo algum tipo de controle Active X para a página ASP.Net? Ele precisa ser cross browser e sistema operacional, se possível.

Apenas um ponto na direção certa e que tecnologias eu deveria usar seria ótimo. Eu preferiria escrever essa funcionalidade me se possível que o uso de uma solução fora da caixa como eu posso ver que esta funcionalidade pode ser alargado no futuro. Como é que algo como WebEx ou co-piloto gerenciar isso?

Graças

Gavin

Edit: Só para deixar claro que eu não estou tentando roubar informações de um PC usuários, eles teriam para permitir essa funcionalidade, o seu mais de um ponto de vista de suporte de modo quando um clientes tendo problemas eles podem enviar um screenshot da página que eles estão.

Foi útil?

Solução

Se ele precisa ser cross-browser e tudo, você deve dar uma olhada em Java (applets). Pode soar antiquado, mas eu acho que é a sua melhor opção. ActiveX funciona em Windows / IE somente;)

Para começar, dê uma olhada nesta questão, que é bastante semelhante: existe uma maneira de ter uma imagem usando Java e salvá-lo em algum tipo de imagem?

Outras dicas

ActiveX iria funcionar. Eu suspeito que você pode ser capaz de fazer algo em Silverlight, Flash ou Java applet bem (o que seria mais cross-browser amigável).

Quanto à co-piloto, ele está sendo executado em um stand alone executável que os cada usuário baixa e corridas. Portanto, não é confinado às limitações típicas do navegador.

É apenas a página que você quer um snap shot de?

Em seguida, você pode acessar as páginas inteiras html renderizado do objeto de documento javascript e enviá-lo para um serviço web, juntamente com o tipo de browser etc. Sem ActiveX instalar necessário: -)

Eu uso o componente WebsitesScreenshot para o site de captura de imagem ou miniatura da imagem. Este Componente .NET é muito fácil de usar. Eu amo este componente. http://www.websitesscreenshot.com/

Exemplo de código:

WebsitesScreenshot.WebsitesScreenshot _Obj;
_Obj = new WebsitesScreenshot.WebsitesScreenshot();

WebsitesScreenshot.WebsitesScreenshot.Result _Result;
_Result = _Obj.CaptureWebpage("http://www.msn.com");

if (_Result == WebsitesScreenshot.WebsitesScreenshot.Result.Captured)
{
    _Obj.ImageWidth = 200;
    _Obj.ImageHeight = 300;
    _Obj.ImageFormat = WebsitesScreenshot.WebsitesScreenshot.ImageFormats.PNG;
    _Obj.SaveImage("c:\\msn.png");
}
_Obj.Dispose();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top