IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème avec les API


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Problème avec les API
    Bonjour à tous !
    Je me trouve confronté à un problème : je voudrais utiliser une API pour changer de fond d'écran...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Declare Auto Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" ( _
                ByVal uAction As Long, _
                ByVal uParam As Long, _
                ByVal lpvParam As Object, _
                ByVal fuWinIni As Long) _
                As Long
    Const SPI_SETDESKWALLPAPER = 20
    Const SPIF_UPDATEINIFILE = 1
     
        Private Sub btTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btTest.Click
                SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,  "C:\Bertrand\Fonds d'écran\01018_neutronrevolver_1280x1024.jpg", SPIF_UPDATEINIFILE)
    End Sub
    La fonction me renvoie un nombre NON NUL... Il me semble que cela veut dire qu'il n'y a pas eu d'erreurs. Cela dit, le résultat attendu n'est pas le bon à savoir que mon écran est de couleur unie, comme si "Aucun" était sélectionné (dans les Propriétés -> Bureau). Hors, lorsque j'ouvre...

    Cela m'est déjà arrivé avec d'autres API, à chaque, pas de résultats...

  2. #2
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Deja ton API est mal déclaré... Bizarre que tu n'ai pas eu d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'correction
    Declare Auto Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" ( _
                ByVal uAction As Integer, _
                ByVal uParam As Integer, _
                ByVal lpvParam As Object, _
                ByVal fuWinIni As Integer) _
                As Integer
    En VB.NET, il faut remplacer les Long par des Integer.

  3. #3
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Et surtout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ByVal lpvParam As Object
    doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ByVal lpvParam As String

  4. #4
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par Danyel
    Et surtout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ByVal lpvParam As Object
    doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ByVal lpvParam As String
    Exact j'avais pas vu

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    merci de vos réponses... Mais ('y a tjrs un "mais" ), cela ne fonctionne toujours pas...
    Le dernier paramètre doit mettre le registre à jour, ce qui n'est pas fait ! mais grande nouveauté : la fonction retourne 0...

  6. #6
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par Bertr@nd
    Le dernier paramètre doit mettre le registre à jour, ce qui n'est pas fait ! mais grande nouveauté : la fonction retourne 0...
    Faut regarder la doc de l'API pour interpréter le résultat

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    non définitevement non... D'après ce que j'ai lu, après de multiples recherches , le 0 c'est L'ECHEC... Maman...

  8. #8
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Va voir la et change ta fonction en BOOLEAN :
    http://www.secretswindows.com/index....ilfonction.php

    PS: Pourquoi as tu mis ton sujet en délestage ?

  9. #9
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Class Windows_Wallpaper
     
    Private Declare Auto Function SystemParametersInfo Lib "user32.dll" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer
        Const SPI_SETDESKWALLPAPER = 20
        Const SPIF_UPDATEINIFILE = &H1
        Const SPIF_SENDWININICHANGE = &H2
        Private File_Path As String
     
        Sub Go()
            SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, File_Path, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
        End Sub
     
    End Class

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    le délestage... c'est une erreur...
    Les 2 liens que vous m'avez passés, je les ai déjà consultés... Sur l'un, ce n'est pas "kernel32.dll" mais bien "user32.dll", et sur l'autre, j'ai testé... sans résultat... Enfin, qu'elle retourne un booléen ou un entier ne change rien...
    Merci qd même

  11. #11
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par Bertr@nd
    le délestage... c'est une erreur...
    Les 2 liens que vous m'avez passés, je les ai déjà consultés... Sur l'un, ce n'est pas "kernel32.dll" mais bien "user32.dll", et sur l'autre, j'ai testé... sans résultat... Enfin, qu'elle retourne un booléen ou un entier ne change rien...
    Merci qd même
    Je serais tenter de dire que c'est l'API qui foire mais ca m"etonnerais comme meme...

  12. #12
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Au cas où, le site www.pinvoke.net m'a déjà aidé plus d'un fois...

    J'ai pas essayé mais il y a un exemple ici qui me semble répondre à ta question :
    http://www.pinvoke.net/default.aspx/...etersInfo.html

    Cdt.

  13. #13
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Le code que je t'ai donne a deja servi et il fonctionnait sans probleme (pas essaye avec vb2005)

    Perso, et comme l'action fait appel à la bdr, n'as tu pas un programme de controle ou d'acces à la bdr qui empecherait la modification.
    Suis presque sur que ca vient de la.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    aucun... En revanche, Pinvoke es franchement pas mal... Il fait dorénavant partie de mes favoris .

    Il se trouve que ça marche... Devinez pquoi? Parce qu'il n'accepte que les fichiers bmp...

    Merci pour tout !

  15. #15
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Starting with Windows Vista, pvParam can specify a .jpg file.
    Cela fonctionne avec les images de type JPEG que sous Windows VISTA...

  16. #16
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    encore merci à tous pour votre aide...

  17. #17
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Bon j'ai testé chez moi et je n'ai pas de soucis !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     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
    Dans la form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Dim fond As String = "C:\Documents and Settings\Aspic\Bureau\Site 4 copy.jpg"
            SystemParametersInfo(20, 0, fond, 1)

  18. #18
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    tout fonctionne ! J'ai trouvé le moyen de convertir une image au format voulu...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim bmp As New Bitmap(NomFichier)
    Dim newFilename as String = NomFichierAvecExtensionBMP
    bmp.save(newFilename, Drawing.Imaging.ImageFormat.Bmp)
    SystemParametersInfo(20, 0, newFilename, 1)
    Cela peut tjrs servir... sans prétention bien sûr

  19. #19
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par Bertr@nd
    tout fonctionne ! J'ai trouvé le moyen de convertir une image au format voulu...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim bmp As New Bitmap(NomFichier)
    Dim newFilename as String = NomFichierAvecExtensionBMP
    bmp.save(newFilename, Drawing.Imaging.ImageFormat.Bmp)
    SystemParametersInfo(20, 0, newFilename, 1)
    Cela peut tjrs servir... sans prétention bien sûr
    Bah tu vois un jour ou l'autre on y arrive

  20. #20
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    exactement

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Google API Calendar v3 : problème avec les librairies
    Par StringBuilder dans le forum C#
    Réponses: 9
    Dernier message: 26/12/2014, 17h11
  2. Réponses: 11
    Dernier message: 22/03/2011, 11h09
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo