PplWare Mobile

Tutorial C# – PrintScreen

                                    
                                

Este artigo tem mais de um ano


Autor: Hélio Moreira


  1. Diogo Silva says:

    Isto é porreiro. Já tive oportunidade de pesquisar sobre este tema na web, e na grande maioria era necessário importar dll’s do windows. Continuação de bom trabalho pplware.

    Diogo Silva

  2. José Marques says:

    Mt bom.. Obg!

  3. Paulo Ferreira says:

    Já programei em C mas C# nunca.
    Como é que compilo isso?

  4. jedi says:

    Muito bom tutorial. brigado. 😉

  5. fil says:

    Quem desenvolve uma aplicação não cria um mecanismo de print screen para identificar erros, as imagens são demasiado pesadas em espaço e pouco vão informar sobre o problema que ocorreu.

    Normalmente é gerado log para um ficheiro ou base de dados, o utilizador poderá ou não enviar um print screen para ajudar caso a aplicação mostrar uma mensagem de erro.

    • Caro fil,

      Antes de mais agradeço o seu comentário.

      O printscreen é apenas mais uma ajuda para tentar identificar o erro. O log é fundamental, e vou preparar um tutorial sobre esse tema.

      Mas como o próprio diz “o utilizador poderá ou não enviar um print screen para ajudar caso a aplicação mostrar uma mensagem de erro.”, e eu pergunto: E a quantidade de utilizadores que não sabem fazer um printscreen e guardar imagem?

      Volto a reforçar que o printscreen é um complemento a um ficheiro de logs / erros.

      Cumps,
      Hélio Moreira

      • Pedro Levi says:

        Boas Hélio!

        Bom tutorial, recentemente fiz algo parecido e que penso ser interessante no ambito do que estás a fazer.
        Passa por colocar um 4º botão em que fazes printscreen a uma janela de um processo expessifico através do handler deste. No caso fiz esse pequeno projecto associado a uma library open source de OCR (tesseract) para resolver uns catpchas…

        fica só a sugestão do quarto botão.

        • Hélio Moreira says:

          Caro Pedro,

          Não queres fazer um tutorial sobre essa opção 🙂

          Cumps,
          Hélio Moreira

          • Pedro Levi says:

            Hélio,
            Terei todo o gosto em acrescentar o 4º botao e fazer um capture de uma aplicação em especifico.
            prefiro retirar a parte do OCR que isso provavelmente em pouco iria ajudar os leitores que se estão a iniciar.

  6. Zé Metralha says:

    … e para quem não tem conhecimentos de programação… poderá sempre recorrer, por exemplo, ao software gratuito PhotoScape que não só trata imagem como tem outras ferramentas entre elas captura de écran…

  7. carlos says:

    qual é lógica de ter um programa destes para tirar printscreen a por exemplo um erro que aparece durante a execução de outro programa quando ao tirar um printscreen aparece este programa em primeiro plano?

    • Caro Carlos,

      O objectivo não é usar este programa para tirar “printscreens” de outros programas, mas sim para tirar o “printscreen” na execução do programa por nós desenvolvido e que em determinado momento deu erro.

      Imagina o seguinte cenário:

      Desenvolves-te um programa, e por algum motivo não fizes-te uma validação necessária.
      Quando o programa “estoura”, além de gravar num ficheiro de logs, era interessante que tirasse um “printscreen” do ecrã onde deu o erro… Dessa forma pode ser mais fácil perceber o que o utilizador fez que causasse aquele erro.

      Cumps,
      Hélio Moreira

      • carlos says:

        ok. agora percebi.
        já agora porque está ali aquela picturebox? podia estar a ser utilizada neste exemplo para apresentar a imagem do printscreen

        • Hélio Moreira says:

          A picture box foi colocada por dois motivos:
          – “Embelezar” o programa 🙂
          – Visualizar o printscreen

          Para não complicar, este segundo ponto fica para outro tutorial.

          Cumps,
          Hélio M

    • Pedro Levi says:

      Mas é possivel tirar um printScreen de qq outra aplicação.
      “process.handler”

  8. António says:

    Muito bom, ainda à poucos dias mandei um bug report para o Chromium e se não me engano juntamente envia um screenshot automático, logo está provada a utilidade deste código. Muito bom especialmente se o bug for no “user interface”.
    Obrigado pelo bom trabalho.

  9. fil says:

    O código de print screen auto até é porreiro sugiro que o completas o teu exemplo com o código de o anexar automaticamente a um email e o enviar por SMTP ou o guardar em ficheiro e enviar por FTP.

    Mas sou da opinião que o print screen neste tipo de situação não traz benefícios. No caso da linguagem C# quando houver um erro e se o programa estiver bem implementado será apanhado uma exception e mostrado uma mensagem de erro simpática para o user. Neste tipo de situação o que se quer é o stacktrace e valores de variáveis e não um print screen da mensagem “simpática” do erro de código real.

    • Hélio Moreira says:

      Em relação a anexar o printscreen é uma ideia bastante interessante. E não é de difícil implementação…

      A ideia neste caso do print screen é que o mesmo seja executado mesmo antes da excepcion, pois no caso de existir um form com vários campos, podemos rapidamente identificar onde ocorreu o erro. Contudo, este código de printscreen serve para inúmeros casos e não só para o registo de erros.

      Cumps.

      Hélio Moreira

  10. Diogo Freitas says:

    Deveriam fazer mais deste gênero (por exemplo não consigo perceber aqueles tutorial de bases de dados pois ainda não tenho as bases necessárias e com este tutorial sem bases nesta linguagem consegui)para o pessoal ainda novo na programação evoluir mais rapidamente.

  11. David Ferreira says:

    Eu não vejo grande utilidade nisto, pois o windows tem atalhos para o fazer!

    • Hélio Moreira says:

      Caro David,

      Respondo ao seu comentário com um parágrafo do tutorial:

      “(…)por mais incrível que pareça, existem muitos utilizadores que não sabem como fazer um “printscreen” e depois guardar a imagem.”

      Cumps,
      Hélio Moreira

      • Ricardo says:

        Hélio teria alguma forma de fazer um PrintScreen de um programa especifico que estiver rodando, por exemplo, se eu tenho o torrent.exe aberto tirar um print dele e mostra na picturebox

  12. Pedro says:

    Porreiro era isto mas para asp.net com C#…

  13. Carlos says:

    Excelente artigo. Parabéns 🙂

  14. Pedro Lamas says:

    Sem dúvida que gosto da iniciativa e acho que devem continuar, no entanto não posso deixar de reparar que a solução peca por falta de controlo da memória, ou seja, falta fazer Dispose() a todos os elementos gráficos e mesmo à caixa de diálogo de Save File! 😉

  15. Guilherme says:

    Como pode ser feito para que sempre salve com um nome diferente a imagem?

  16. Felipe says:

    Muito bom, obrigado pelo post!

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.