IMAGEM DA AREA DE TRABALHO EM FORM

THIAGOM 21/01/2013 14:36:43
#417805
Estou tentando fazer uma espécie de [Ô]fundo dinamico[Ô] em _Activate no Form...;

é possível fazer uma função que retorne uma string do caminho da imagem utilizada na área de trabalho do Windows7?, utilizo o vba7...

Este é o código que estou tentando montar:
---------------------------------------------------------------
[txt-color=#0000f0]Private Sub[/txt-color] UserForm_Activate()

[txt-color=#007100][ô]ImagePath é o caminho da imagem utilizada no fundo da áera de trabalho, retornado pelo Windows[/txt-color]
Me.Image1.Picture = LoadPicture(ImagePath)

[txt-color=#0000f0]End Sub[/txt-color]
-----------------------------------------------------------------

*Realmente seria simples se fosse definir este caminho manualmente (digitando ou colando a string em uma célula, por exemplo) ao selecionar a imagem para o fundo da área de trabalho, porém outras pessoas em outras máquinas não teriam o mesmo [Ô]zelo[Ô] e importância em estar fazendo isso, assim se conseguir ter retorno desta string de caminho do arquivo de imagem pelo windows resolveria esse problema... é possível?
FILMAN 21/01/2013 14:49:13
#417808
Resposta escolhida
Tente esse exemplo que postei no Forum!!

foi feito em VB6, mas acho que da pra utilizar em VBA normalmente


http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=9187
THIAGOM 21/01/2013 14:53:52
#417810
Blz, vou testar...
ALEVALE 21/01/2013 15:35:28
#417813
O que poderia fazer também é ler o arquivo de papel de parede (HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper)

THIAGOM 22/01/2013 03:32:02
#417848
FILMAN e ALEVALE, vcs me ajudaram muito...

FILMAN, deve ter alguma imcompatibilidade, porém cosegui importar o módulo, apesar de não ter conseguido importar o form do teu exemplo, consegui entender o suficiente e adaptá-lo à minha necessidade....
ALEVALE, vc me ajudou a ter um foco pois no exemplo que o FILMAN me passou já trabalha com este comando, mas eu não estava entendendo...

Ja tenho um código que dimesiona direitinho, agora consigo colocar qualquer imagem no fundo, mesmo que seja JPG ou PNG, não sei se no VBA6 é assim tbm...
Obg.

ficou assim:

[txt-color=#0000f0]Private Sub[/txt-color] UserForm_initialize()
[txt-color=#007100][ô]Uso o dimendionamento aqui, seguindo vem logo o código abaixo que estava precisando...[/txt-color]

[txt-color=#0000f0]Dim[/txt-color] sShell [txt-color=#0000f0]As Object[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] Caminho [txt-color=#0000f0]As String[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] strWallpaper [txt-color=#0000f0]As String[/txt-color]

[txt-color=#0000f0]Set[/txt-color] sShell = CreateObject([Ô]Wscript.Shell[Ô])
strWallpaper = [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper[Ô]
Caminho = sShell.RegRead(strWallpaper)

Me.Image1.Picture = LoadPicture(Caminho)
Me.Image1.PictureSizeMode = 1
[txt-color=#0000f0]End Sub[/txt-color]
Tópico encerrado , respostas não são mais permitidas