Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [vb.net] Changer de wallpapers [ Archives Visual Basic / API ] (bloodaxe)

mardi 7 décembre 2004 à 17:08:53 | [vb.net] Changer de wallpapers

bloodaxe

Salut tous, je viens demander conseil a des spécialiste de visual basic .net. J'ai fait un programme qui change le wallpaper de Windows (jusque la rien d'exeptionnelle), j'utilise donc la fonction SystemParametersInfo que j'ai importer de la dll user32.dll. Ca compile nikel mais ca ne change pas le fond d'écran.
Voila le source:

'j'inclus la dll user32.dll
'<DllImport("User32.dll", EntryPoint:="SystemParametersInfo", _
'SetLastError:=True, CharSet:=CharSet.Auto, _
'CallingConvention:=CallingConvention.StdCall)> _
'Public Shared Function Change_Wallpaper(ByVal uiAction As Long, _
'ByVal uiParam As Long, ByRef pvParam As Any, ByVal fWinIni As Long)
'Cette fonction change le fond d'écran (Wallpaper) de Windows.
'elle fait un apelle à la fonction SystemParametersInfo dans la dll User32.dll
'BOOL SystemParametersInfo( UINT uiAction, UINT uiParam, _
'PVOID pvParam, UINT fWinIni);
'End Function

Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" ( _
ByVal uAction As Long, _
ByVal uParam As Long, _
ByRef lpvParam As String, _
ByVal fuWinIni As Long) As Long

' ici j'apelle la fonction SystemParametersInfo:
fichier = "D:\\Images\\Synthèse\\@.bmp"
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, fichier, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)


Le bureau se rafraichis, mais le fond d'écran reste le même, J'ai essayer la fonction SystemParametersInfo avec visual c++ en utilisant la même syntaxe ca passe. Je capte pas pouquoi avec vb .net sa ne fait rien.

merci de votre aide.

mardi 7 décembre 2004 à 17:57:26 | Re : [vb.net] Changer de wallpapers

valtrase

Salut,
Essayes en rajoutant Auto dans ta déclaration.


Declare Auto Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" ( _
ByVal uAction As Long, _
ByVal uParam As Long, _
ByRef lpvParam As String, _
ByVal fuWinIni As Long) As Long


________________________________________________________________________________

Cordialement, Jean-Paul

Le Savoir n'a de valeur que s'il est partagé

mardi 7 décembre 2004 à 18:09:06 | Re : [vb.net] Changer de wallpapers

Gobillot

fichier = "D:\Images\Synthèse\@.bmp"

une simple barre suffit !

Daniel

mardi 7 décembre 2004 à 18:40:34 | Re : [vb.net] Changer de wallpapers

bloodaxe

J'ai mis auto et qu'une seule barre, ca fait toujours pareil :-(.

mardi 7 décembre 2004 à 18:50:00 | Re : [vb.net] Changer de wallpapers

Gobillot

question bête, t'as bien déclaré tes constantes ?

Private Const SPI_SETDESKWALLPAPER = 20
Private Const SPIF_SENDWININICHANGE = &H2
Private Const SPIF_UPDATEINIFILE = &H1

dim Rep as Long
Rep = SystemParametersInfo 20, 0&,Byval fichier, &H2 Or &H1

Rep doit être non zéro

j'ai trouvé, une String doit être avec Byval ...

Daniel

mardi 7 décembre 2004 à 19:40:10 | Re : [vb.net] Changer de wallpapers

bloodaxe

Ben oui mais j'ai pas le même valeur que toi.
J'ai mis ca comme valeurs:


Const SPIF_UPDATEINIFILE As Long = &H1
Const SPI_SETDESKWALLPAPER As Long = &H14
Const SPIF_SENDWININICHANGE As Short = &H2


Et j'ai essayer de passer le nom du fichier par valeur, ca change rien si c'est bien ce que tu voulais me dire:

Declare Auto Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" ( _
ByVal uAction As Long, _
ByVal uParam As Long, _
ByVal lpvParam As String, _
ByVal fuWinIni As Long) As Long

mardi 7 décembre 2004 à 19:42:10 | Re : [vb.net] Changer de wallpapers

bloodaxe

Et rep est a zero :-(

mardi 7 décembre 2004 à 20:16:27 | Re : [vb.net] Changer de wallpapers

Gobillot

Rep à zéro c'est pas bon.
Les constantes c'est les mêmes sauf qu'il faut les déclarer en Integer (correspondant au Long de VB6).
donc mettre tous les Long en Integer et idem dans la déclaration.

Private Const SPI_SETDESKWALLPAPER As Integer = 20
Private Const SPIF_UPDATEINIFILE As Integer = 1
Private Const SPIF_SENDWININICHANGE As Integer = &H2

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer

Daniel

mardi 7 décembre 2004 à 20:26:05 | Re : [vb.net] Changer de wallpapers

bloodaxe

J'ai comme tu m'a dit :

Declare Auto Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" ( _
ByVal uAction As Integer, _
ByVal uParam As Integer, _
ByVal lpvParam As String, _
ByVal fuWinIni As Integer) As Integer


Et ca marche le fond d'écran change :-D. Mais rep est toujours a zero.

vendredi 11 février 2005 à 15:54:30 | Re : [vb.net] Changer de wallpapers

xtoff

Bonjour,

Je débute en ce qui concerne les API et j'ai un problème en ce qui concerne le code précédent.
Pas de changement du fond d'écran, mais la possibilité de l'effacer en promenant la fenetre du projet ;-)
Dans la procédure du bouton, faut-il utiliser  "SystemParametersInfo..." ou "'Change_Wallpaper"

Merci d'avance pour la réponse.
XToff

Voila ce que j'ai :

-----------------------------------------------
Imports System.Runtime.InteropServices

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Code généré par le Concepteur Windows Form "
' Je n'ai evidemment pas copié ce qui précède

    Declare Auto Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" ( _
        ByVal uAction As Integer, _
        ByVal uParam As Integer, _
        ByVal lpvParam As String, _
        ByVal fuWinIni As Integer) As Integer

    Private Const SPI_SETDESKWALLPAPER As Integer = 20
    Private Const SPIF_UPDATEINIFILE As Integer = 1
    Private Const SPIF_SENDWININICHANGE As Integer = &H2

    Dim fichier As String

    <DllImport("User32.dll", EntryPoint:="SystemParametersInfo", _
    SetLastError:=True, CharSet:=CharSet.Auto, _
    CallingConvention:=CallingConvention.StdCall)> _
    Public Shared Function Change_Wallpaper(ByVal uiAction As Integer, _
    ByVal uiParam As Integer, ByRef pvParam As String, ByVal fWinIni As Integer)

    End Function

    Private Sub Button1_Click( _
            ByVal sender As System.Object, _
            ByVal e As System.EventArgs) _
            Handles Button1.Click

        fichier = "D:\Wallpaper1.bmp"
        'Change_Wallpaper(SPI_SETDESKWALLPAPER, 0, fichier, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
        SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, fichier, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)

    End Sub

End Class
---------------------------------------



1 2

Cette discussion est classé dans : fonction, net, long, dll, systemparametersinfo


Répondre à ce message

Sujets en rapport avec ce message

[vb.net] Changer de wallpapers [ par bloodaxe ] Salut tous, je viens demander conseil a des spécialiste de visual basic .net. J'ai fait un programme qui change le wallpaper de Windows (jusque la rie appel d'une fonction dans une dll [ par FMatrix07 ] je ne vois pas trop comment faire si vous pouvez me donner un exemple concretpar exemple je veux utiliser la fontion CreateToolhelpSnapshot dans la dl Fonction des DLL [ par jujeco ] Je débute dans la programmation en VB6. J'utilise des sources que je trouve sur ce site et je les décortiques pour les comprandre. En général tout vas conversion long en long* [ par ybuchheit ] Bonjour, Je dois appeler une fonction écrite en C et provenant d'une dll. Cette fonction prend comme argument un long*. Ma fonction est bien déclarée Utiliser une dll C sous VB6 (pb de conversion de type) [ par sophie75 ] Bonjour, Je souhaite utiliser une dll qui a été écrite en C, dans un programme VB. Grâce à la fonction Lib, j'arrive à appeler certaines méthodes de c DUMPBIN ou appel à une DLL d'un autre program [ par buddy91600 ] Bonjour En utilsant la commande dumpbin / export ***.dll de visual studio .net sur n'importe quelle dll de mon PC , j'obtient la liste de tous les cal Fonction vb.Net vers VB6 [ par kyle ] Bonsoir à tous,Je lance un S.O.S :Je dois créer une fonction en vb.Net qui pourra être utilisée ensuite en VB6 et "Cobol" !! ...Je ne sais pas vraimen DLL C "maison" qui marche pas. [ par Polack77 ] Bonjour Historique (sans réel intérêt mais si ça vous intéresse voila) : Je fais actuellement une classe (enfin 2, 1 VB6 et 1 VB.NET) qui use c++-dll in vb.net [ par barbara6284 ] We developed an electronic signature. This program is written in C++ and is provided as a dll-file. This file should work with programs in other langu VB.Net Fonction Rectangle [ par JeffC1977 ] Salut J'utilise ce code pour dessiner un cercle dans un picture boxDim MonRectable As Rectangle<


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.