Question

J'ai lu à quelques endroits que le papier peint du bureau peut être défini sur un document HTML. Quelqu'un a-t-il déjà réussi à le modifier par programmation?

L'extrait suivant de VB6 m'aide à configurer les choses pour les fichiers BMP, mais lorsque j'essaie de l'utiliser pour le format HTML, j'obtiens un joli fond bleu et rien d'autre.

Dim reg As New StdRegistry

Public Function CurrentWallpaper() As String
    CurrentWallpaper = reg.ValueEx(HKEY_CURRENT_USER, "Control Panel\Desktop", "Wallpaper", REG_SZ, "")
End Function

Public Sub SetWallpaper(cFilename As Variant)
    reg.ClassKey = HKEY_CURRENT_USER
    reg.SectionKey = "Control Panel\Desktop"
    reg.ValueKey = "Wallpaper"
    reg.ValueType = REG_SZ
    reg.Default = ""
    reg.Value = cFilename
End Sub

Public Sub RefreshDesktop()
    Dim oShell As Object
    Set oShell = CreateObject("WScript.Shell")
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
End Sub

Peut-être existe-t-il un autre paramètre requis. Des idées?

Était-ce utile?

La solution

Je ne sais pas s'il existe une API officielle pour cela, mais si vous avez le coeur à la page, vous pouvez utiliser le Moniteur de processus et découvrez les clés de registre touchées lorsque vous définissez un arrière-plan de bureau HTML via l'interface utilisateur. Ensuite, il vous suffira de répéter ces modifications dans votre code. Cependant, un appel API serait de loin préférable en termes de compatibilité ascendante / descendante.

Autres conseils

Je pense que vous devez vous assurer que "Active Desktop" " est activé.

Vous pouvez essayer de définir HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer \ ForceActiveDesktopOn sur 1 (trouvé ici ).

Je ne l'ai pas essayé, donc aucune garantie.

D'accord, j'ai découvert la réponse à ma question grâce à egl1044 sur Echange d'experts . Essentiellement, il faut parler à l'objet IActiveDesktop. Une bonne mise en œuvre de cela, en VB6, peut être trouvée à l'adresse VB6 - les fichiers JPEG en tant que fonds d'écran (sans conversion) .

Je recommande uniquement le format BMP. N'utilisez pas ActiveDesctop, car votre PC fonctionnera lentement par la suite.

Se rapprocher: http: // www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/w2rkbook/gp.mspx?mfr=true


Mais il s’avère que je me suis égaré dans l’espace des politiques. Ce que je voulais vraiment, c’était de définir le bureau dans l’espace utilisateur et de laisser les paramètres de stratégie conservés. Des informations utiles ont été trouvées ici: http: //blogs.msdn .com / coding4fun / archive / 2006/10/31 / 912569.aspx .

Cependant, ce n'est pas la solution finale. Le contrôle des bureaux HTML est toujours hors de portée.


Il semble que les paramètres HTML soient stockés dans HKCU \ Software \ Microsoft \ Internet Explorer \ Bureau \ Général. Cependant, les stocker ici ne semble pas être suffisant. J'ai encore besoin de trouver le mécanisme qui permet à Windows de savoir quel jeu de valeurs de registre utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top