none
Formulario Modificado/Area de Trabalho RRS feed

  • Pergunta

  • Bom dia.

    Sou desenvolvedor vb.net, e gostaria de um auxílio.

    Preciso criar um form, que possa permitir que os usuários cliquem por dentro dele em ícones da área de trabalho.

    Vamos supor, um for transparente que fique sob a área e atrás dela tenha meus documentos, meu computador, etc.

    Gostaria de poder clicar sobre o ícone ou sobre qualquer lugar, mesmo estando com o form ativo.

     

    Obs. Não quero modelos que façam ao clicar hiden com sleep, quero apenas um meio de quando estiver no form puder clicar sobre os icones.

    Por favor, não mandem isso:

    -------------------------

    form1_click

    me.hide()

    thread.sleep(100)

    me.show()

    end sub

    -------------------------

    sexta-feira, 29 de abril de 2011 14:47

Respostas

Todas as Respostas

  • Mas pra que você quer fazer isso? Sua aplicação vai ficar acima de tudo?

    Bruno Ferreira de Souza
    MSP - Microsoft Student Partner
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro
    domingo, 1 de maio de 2011 00:57
  • Bruno,

    Minha aplicação de preferencia vai ficar atrás dos ícones...

    Se alguém souber como colocar o form por trás dos ícones da areá de trabalho, já ajuda.

    Obrigado.

    segunda-feira, 2 de maio de 2011 18:10
  • Vc pode fazer uma aplicação Silverlight ou WPF Browser Application, pq vc pode definir uma pagina html ou url como papel de parede no windows....

    segunda-feira, 2 de maio de 2011 18:27
    Moderador
  • Não cheguei a pesquisar, mas será que não existe uma forma de obter o conteúdo da área do trabalho (ícones, textos e posições dos atalhos) e montares uma janela maximizada com esse conteúdo? Seria um desktop mascarado.

    Essa minha sugestão é de quem realmente desconhece se existe uma forma de deixar um windows form em background na área de trabalho. Se existir essa forma, por favor, desconsidere a sugestão.

    Sds.,


    Daniel Ethur Porto Alegre/RS
    segunda-feira, 2 de maio de 2011 20:19
  • Rui, não pretendo fazer aplicação web.

    Não pretendo usá-lo como papel de parede, mas preciso que meu form fique atrás dos ícones.

    Em WPF(Vb.net) ou Windows Form, tanto faz.

     

    Imagine que vc tem um form fixo e precisa que fique atrás de algum ícone como ex.

     

    Obrigado.

    terça-feira, 3 de maio de 2011 12:21
  • Daniel,

    A intensão também não é mascarar a área de trabalho.

    Por vários, motivos, decidi que esta não é uma boa opção, bugs, consumo, etc.

     

    Obrigado.

    terça-feira, 3 de maio de 2011 12:22
  • Pois entao Mario...

    Para vc rodar a aplicação atras dos icones do desktop, basta vc definir a mesma como  papel de parede... nem que seje somente durante a execução.. na hora de fechar vc volta o papel de parede anterior...

    Para rodar uma aplicação como Wallpaper ela prescisa rodar dentro de um browser... pq o desktop é um browser....

    se vc fizer uma aplicação WPF Browser Application resolveria o seu problema... eu acho que é a solução mais simples...

    terça-feira, 3 de maio de 2011 14:00
    Moderador
  • Rui,

    O problema é que se eu criar uma aplicação em browser, vou retirar o papel de parede atual do "cliente".

    Gostaria de criar uma aplicação que ficasse "como um papel de parede", mas que o original apareça, e o meu fique mais como background tranparente. Imagine a dor de cabeça eu criar uma aplicação que mude o papel de parede do cliente, mesmo que seja por alguns minutos. Eu também não quero criar um fake, porque, mesmo fake não adianta. Queria criar um form transparente, sem borda que permitisse que ao clicar nele ou em um botão ele executasse alguma operação, porém existe os ícones, e eu queria atrás dos ícones.

     

    Obrigado pela dedicação!

    terça-feira, 3 de maio de 2011 16:46
  • Então Mario, se a sua pergunta é "Existe um modo facil de fazer isso" devo dizer que não... é algo muito especifico pelo qual o sistema operacional não foi preparando para fazer...

     

    Apenas digo que, ao meu ver, essa é a maneira menos complicada... digo, capturar o papel de parede atual, colocar o mesmo como background da sua aplicação e colocar a sua aplicação como wallpaper e depois desfazer essa operação... eh algo que com 20... no maximo 30 linhas de codigo vc pode conseguir fazer...

     

    Qualquer outra solução que envolva manipulação de mensagens do windows e uso de Apis, inevitavelmente seria mais complicado...

    terça-feira, 3 de maio de 2011 16:57
    Moderador
  • Cara, esse formulário seu vai fazer alguma coisa? Tipo, vai ter botão e controles e tal?
    Acho que o único jeito é colocando na sua aplicação um listview e ler os icones que estão na pasta do desktop e exibi-los mudando o tipo de visualização para ícones médios.

    Se for no windows 7 fica na pasta C:\Users\SEU USUARIO\Desktop.


    Bruno Ferreira de Souza
    MSP - Microsoft Student Partner
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro
    quarta-feira, 4 de maio de 2011 03:40
  • Olá Mario,

    Encontrei uma discussão semelhante aqui no forum. Quem sabe te dá uma luz:

    "http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/29eafea7-e6b3-4747-8c94-73f343674660"

    Sds.,


    Daniel Ethur Porto Alegre/RS
    quarta-feira, 4 de maio de 2011 17:48
  • Mario,

    Se o que você está querendo é um Form transparente que fique entre os ícones do desktop e o papel de parede, esta solução faz o que você quer:

    http://stackoverflow.com/questions/113899/transparent-form-on-the-desktop


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quarta-feira, 4 de maio de 2011 18:12
    Moderador
  • Caramba, Andre! Pra mim funcionou beleza aki! Não precisei nem adicionar aquele método de WindowProcess. Legal mesmo!
    Daniel Ethur Porto Alegre/RS
    sexta-feira, 6 de maio de 2011 13:25