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

C++Builder Discussion :

modifier le fond d'écran windows


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut modifier le fond d'écran windows
    bonsoir à toutes et à tous

    dans mon programme j'aurais besoins de modifier le fond d'écran
    apres quelques recherches je suis tombé la dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     SystemParametersInfo(SPI_SETDESKWALLPAPER,
                         0,"C:\\Dossier\\Dessin.bmp",NULL );
    le problème avec ce code c'est que je ne peux pas utiliser de fichier .jpg ce qui est plustot embêtant

    est-ce que quelqun connait le moyen de contourner cela

    sinon deuxième problème c'est que si l'image choisie ne remplis pas l'écran, elle est centrée et le fond est bleu...

    y-a-t-il un moyen de modifier ça??

    merci
    /**
    * Author: Tehem
    * Version: 2.0
    */
    Extension Twig pour Symfony 2.1 (Check Defined Constant)
    https://github.com/tehem/TwigConstantExtension

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut Mangacker
    Il y a ce lien sur la FAQ pour recuperer et changer le papier peint du bureau
    Comme ils passent par un TImage, si je ne trompe pas dans l'aide en ligne BCB il y a un exemple qui charge un JPG dans un TImage, c'est peut etre une solution
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  3. #3
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    l'exemple proposé dans le lien que tu m'as donné il y a le meme problème et j'ai un message d'erreur qui apparait

    "Image Bitmap incorrecte"...
    /**
    * Author: Tehem
    * Version: 2.0
    */
    Extension Twig pour Symfony 2.1 (Check Defined Constant)
    https://github.com/tehem/TwigConstantExtension

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    C'est normal ton erreur dans la FAQ on utilise un Bitmap, toi tu veu utiliser un JPG comme cite dans ma reponse precedente
    Comme ils passent par un TImage, si je ne trompe pas dans l'aide en ligne BCB il y a un exemple qui charge un JPG dans un TImage, c'est peut etre une solution
    il faut transformer le JPG en Bitmap, je pense que ceci marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      //"jpeg.hpp" doit être inclus dans le fichier source
      TJPEGImage *jp = new TJPEGImage();
            jp->LoadFromFile("C:\\Documents and Settings\\blondelle\\Mes documents\\Mes images\\AG00004_1.jpg");
    Image1->Picture->Bitmap->Assign(jp);
    //        jp->Assign(Image1->Picture->Bitmap);
    //    jp->SaveToFile("c:\\oneeye.jpg");
        delete jp;
    }
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  5. #5
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    merci j'essaye comme ça et je vous redis demain je pense (ou ce soir si j'arrive)

    bonne soirée
    /**
    * Author: Tehem
    * Version: 2.0
    */
    Extension Twig pour Symfony 2.1 (Check Defined Constant)
    https://github.com/tehem/TwigConstantExtension

  6. #6
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    ça marche merci bonne soirée
    /**
    * Author: Tehem
    * Version: 2.0
    */
    Extension Twig pour Symfony 2.1 (Check Defined Constant)
    https://github.com/tehem/TwigConstantExtension

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 15
    Points
    15
    Par défaut
    voici un code source qui marche bien pour charger un image jpg comme fond decran, on peu choisir entre title strech ou center :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "jpeg.hpp"
    #include <registry.hpp>
    #include "USpi.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    void __fastcall DefinirFondDecran ();
    TForm1 *Form1;
    String Addr="Winlog.jpg";
    TRegistry *registre =     new TRegistry();
    AnsiString __fastcall GetUser();
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
       : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::CentrerClick(TObject *Sender)
    {
          registre->WriteString("TileWallpaper", 0);
        registre->WriteString("WallpaperStyle", 1); // 1=center 2=strech
          DefinirFondDecran ()  ;
     }
     
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::TitleClick(TObject *Sender)
    {
           registre->WriteString("TileWallpaper", 1);
           DefinirFondDecran ()  ;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::EtirerClick(TObject *Sender)
    {
           registre->WriteString("TileWallpaper", 0);
           registre->WriteString("WallpaperStyle", 2);
           DefinirFondDecran ()  ;
    }
    //---------------------------------------------------------------------------
    void __fastcall DefinirFondDecran ()
    {
     
               //etablir comme fond decran
    SystemParametersInfo( SPI_SETDESKWALLPAPER,Addr.Length(),Addr.c_str(),WM_SETTINGCHANGE);
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
       //afficher limage au demarage
      TJPEGImage *jp = new TJPEGImage();
        jp->LoadFromFile(Addr);
        Image1->Picture->Bitmap->Assign(jp);
     
        //place le pointer sur le regristre pour changer laspect du fond decran
          registre->RootKey = HKEY_CURRENT_USER ;
         registre->OpenKey("\\Control Panel\\Desktop", true);
     
             //converti jpg to bmp et la sauvegader
     using Graphics::TBitmap;
    Graphics::TBitmap* bmp;
    TJPEGImage *jpg = new TJPEGImage();
    bmp = new Graphics::TBitmap ();
    jpg->LoadFromFile (Addr);
    bmp->Assign(jpg);
    bmp->SaveToFile (Addr.SetLength(Addr.Length() -3)+="bmp");
    delete bmp;
    delete jpg;
     
          //copier le bmtp dans windows
    String AddrWin="C:\\Documents and Settings\\"+GetUser()+"\\Local Settings\\Application Data\\Microsoft\\";
       DeleteFile(AddrWin+"Wallpaper1.bmp");
     CopyFile(Addr.c_str(),(AddrWin+"Wallpaper1.bmp").c_str(), true);
    }
    //---------------------------------------------------------
     
    void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
    {
           registre->CloseKey();   //fermer le regristre
         delete registre;
         DeleteFile(Addr.SetLength(Addr.Length() -3)+="bmp"); // effacer limage bmp quon na cree au depart de laplication
    }
    //---------------------------------------------------------------------------
    AnsiString __fastcall GetUser()
    {
        AnsiString user("");
        DWORD t_user(256);
        char *name_user=new char[t_user];
        if( GetUserName(name_user, &t_user) )
        {
            user=AnsiString(name_user);
        }
        delete[] name_user;
        return user;
    }
    il faut metre un fichier nommer Winlog.jpg dans votre repertoire
    NE VA PAS FONCTIONER SUR WIN XP FR, IL FAUT CHANGER LES LADRESS DANS void __fastcall TForm1::FormCreate(TObject *Sender)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer couleur fond d'écran Windows 7
    Par Il_TiRaNNo dans le forum VBScript
    Réponses: 1
    Dernier message: 02/06/2010, 12h46
  2. Emplacement des fonds d'écran Windows 7
    Par Louis Griffont dans le forum Windows 7
    Réponses: 2
    Dernier message: 17/06/2009, 09h39
  3. Rafraîchir le fond d'écran (Windows)
    Par bobo21 dans le forum Multimédia
    Réponses: 1
    Dernier message: 24/02/2007, 17h33
  4. [WIN32][D7] Changer de fond d'écran windows
    Par Herk77 dans le forum Delphi
    Réponses: 9
    Dernier message: 25/10/2006, 19h38
  5. Changer fond d'écran Windows au démarrage
    Par SteelBox dans le forum Windows
    Réponses: 10
    Dernier message: 08/12/2005, 18h07

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