Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Communauté des zéros > Présentation de vos projets > [C++ / Qt / WinAPI] SwitchEcran > Lecture du sujet

[C++ / Qt / WinAPI] SwitchEcran

Un logiciel qui change automatique le fond d'écran

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne chnunu # Posté le 08/07/2008 à 22:45:39
Groupe : Membres
Voici mon plus gros projet depuis que je me suis lancé dans la programmation par le Tuto de Mateo sur le C. Il s'agit de SwitchEcran, programmé en C++ et utilisant la librairie Qt et l'API Windows :

Image utilisateur
SwitchEcran est une application utilisable uniquement sous Windows qui permet le changement automatique programmé du fond d'écran de votre compte d'utilisateur Windows. Une fois lancé, SwitchEcran effectue un travail de fond consistant à changer le fond d'écran selon les réglages que vous lui avez donné. L'application est alors discrète puisqu'elle laisse juste une icône dans la barre SystemTray (voir la photo ci-contre). En cliquant sur cet icône, vous accédez à un menu qui propose de changer manuellement les fonds d'écran, d'ouvrir la fenêtre de réglages (voir la photo ci-contre) et de fermer l'application.
SwitchEcran récupère les fonds d'écran dans un répertoire que vous lui indiquez. Il peut choisir les fonds d'écran de façon aléatoire ou en suivant l'ordre alphabétique des noms des fichiers images. Par ailleurs, la fréquence de rafraîchissement est également paramétrable, en donnant un intervalle de temps en minutes, en jours ou en mois, ou en programmant le changement automatique à chaque démarrage de votre session Windows. Enfin vous pouvez demander à l'application de se lancer au démarrage de votre session Windows afin qu'elle devienne complètement autonome et que vous n'ayez pas à la relancer à chaque fois.

Après cette petite description, je vous proposé de télécharger le programmme et les sources depuis CETTE PAGE (descendre en bas de la page).

Dites moi ce que vous en pensez, vos idées d'amélioration... et soyez indulgents !!! :p
Édité le 08/07/2008 à 22:46:44 par chnunu
Hors ligne Pandilene # Posté le 09/07/2008 à 02:15:16
Groupe : Membres
J'utilise déjà un programme similaire : "WallPaper" (ils se sont pas foulés pour le nom) qui est un freeware, téléchargeable ici : http://www.silver76.com/

Je vais de ce pas télécharger le tien, et te dire ce que j'en pense, en comparaison à l'autre.

Les fonctionnalités proposées me semblent très similaires...

EDIT après installation du logiciel :
*j'aime* : l'interface utilisateur, que ce soit pour son esthétique que pour le fait que toutes les options / paramètres sont regroupées dans une seule fenetre (Sous Wallpaper, tu as le menu genre Windows, avec onglet Fichier, Affichage, Option, Aide)

*j'aime moins* : le fait que ça marche pas : malgré mes 349 papier-paints chargés, meme en faisant "papier-paint suivant", il m'affiche un fond gris sombre...
Édité le 09/07/2008 à 02:39:24 par Pandilene
Hors ligne chnunu # Posté le 09/07/2008 à 17:56:42
Groupe : Membres
Salut Pandilène, pour commencer merci d'avoir pris le temps de t'intéresser à mon projet.
Il me semblait bien qu'il existait déjà des programmes comme SwitchEcran mais je l'ai programmé pour pouvoir avoir les options que je voulais et aussi parce que je cherchais un projet de programmation et que c'est la seule idée qui m'est venue.

Je ne comprend pas pourquoi il ne marche pas chez toi, il marche très bien chez moi et chez tous les gens qui l'avaient téléchargé avant toi!
Est-ce que tu pourrais s'il te plait me donner ta configuration windows et le chemin du répertoire dans lequel se trouve les fonds d'écrans. Je pense que le problème vient surement du répertoire. Essaye de changer le répertoire sinon pour voir si ça change quelque chose.
Hors ligne Depix # Posté le 09/07/2008 à 18:22:22
Informatiquez !!
Avatar
Groupe : Membres
Salut,
J'aime bien ton projet :) Surtout le coté graphique :)
Sinon pense a fournir avec lui une centaine :p de fond d'ecran

ZinTube : Site de partage de vidéos !!
Prochainement !!
 
Hors ligne black17 # Posté le 09/07/2008 à 18:42:57
Avatar
Groupe : Membres
j'ai le même problème...
Les images sont grises :/
Hors ligne chnunu # Posté le 09/07/2008 à 18:49:49
Groupe : Membres
Merci Depix pr ton soutien :p ! C'est vrai que ça pourrait être une bonne idée de donner des fonds d'écran avec mais ça devient vite très lourd à télécharger (l'archive compressée fait déjà 4Mo !), même si je mets les fonds d'écrans au format JPG, parce qu'en plus il faut une bonne résolution pour un fond d'écran (au moins 1024x768).
En plus jme dis que c'est plus sympa de mettre ses propres fonds d'écran.
Ou alors je mets deux téléchargements différents, avec ou sans fonds d'écrans... bon j'arrête je commence à réfléchir tout haut :-° !

Sinon black17 donne moi ta configuration windows et le chemin du répertoire dans lequel se trouve les fonds d'écrans. Je pense que le problème vient surement du répertoire (faut pas que ça soit un raccourci vers un autre répertoire, le genre de conneries qu'on retrouve bien dans Vista). Essaye de changer le répertoire sinon pour voir si ça change quelque chose.

Si vous avez d'autres remarques surtout n'hésitez pas ! ;)
Hors ligne black17 # Posté le 09/07/2008 à 18:55:11
Avatar
Groupe : Membres
je suis sous XPFamilial
j'ai essayé avec un dossier dans mes documents et avec un dossier sur mon bureau maix j'ai toujours du gris...
Hors ligne Pandilene # Posté le 10/07/2008 à 11:13:58
Groupe : Membres
Salut ! Je suis sous Windows XP Home Edition Version 2002 en Italien

Au départ, mes fonds d'écrans étaient dans un sous-dossiers de "Mes Images"
C:\Documents and Settings\Pandilene\Documenti\Images\Fonds d'ecran

J'ai essayé de les mettre dans :
C:\Programmi\SwitchEcran\Fonds ( le dossier où est installé ton programme)
mais ça ne résout rien.
Hors ligne danman # Posté le 12/07/2008 à 16:33:51
Miammmmmm boulon !
Avatar
Groupe : Membres
peut-etre les espaces ou "\" - "/" .
a méditer ...

http://www.inzeprog.net
la version finale V3 approche :)
tous a vos marque pages !!! ;)
 
Hors ligne Gregouar # Posté le 12/07/2008 à 16:48:03
Pathétique créature mortelle
Avatar
Groupe : Membres
Peut-être que ça ne fonctionne que sous vista.

Image utilisateurImage utilisateur
 
Hors ligne Zarmakuizz # Posté le 12/07/2008 à 17:41:03
- À définir -
Avatar
Groupe : Membres
J'ai été surpris, ça marche bien sous Windows XP. Et en plus, ça prend en compte les fichiers image du dossier et de ses sous-dossiers, amusant. Faudrait une option pour pouvoir choisir seulement le dossier ou inclure les sous-dossiers.

J'utilise Windows XP dans sa résolution d'affichage la plus primaire.

N'oubliez pas, après avoir installé et ouvert le programme, de le configurer.


J'aurais bien aimé voir un paramétrage en seconde, moi...ça peut être amusant de changer de fond d'écran toutes les 10 secondes.
D'un autre côté je me tamponne royalement de changer mon fond d'écran régulièrement et automatiquement, je prend un fond tout gris pour pas faire mal aux yeux. Mais si on change régulièrement le fond d'écran, autant pouvoir s'amuser un peu avec.

Allez, vu qu'il marche chez moi, je peux le désinstaller.

Chargé de faire, un de ces jours, un tutoriel portant sur RPG MAKER versions 2003, XP et VX.

Avancement: 2%
Partie 1: environs 10%
On adopte la version de notre choix et on la découvre.
Chapitre 3: 35%


Partie 2: On assimile bien RPG MAKER pour pouvoir réaliser de bonnes choses avec.

Partie 3: Ce que RPG MAKER n'apporte pas pour faire votre jeu

Partie 4: Je verrai bien.
 
Hors ligne rom1504 # Posté le 13/07/2008 à 02:01:16
Groupe : Membres
Citation : Pas de titre
Faudrait une option pour pouvoir choisir seulement le dossier ou inclure les sous-dossiers.

et "Inclure les fichiers images présents dans les sous dossiers" ce serait pas cette option par hasard :-° ?

Mon portfolio - client_irc : mon client irc - Présentation sur le sdz de ce client irc - vraiCalculatrice : une calculatrice qui permet d'effectuer vos calculs en une seule fois
 
Hors ligne chnunu # Posté le 14/07/2008 à 01:28:01
Groupe : Membres
Je pensais moi aussi pendant quelques temps que mon programme ne pourrait fonctionner que sous Vista mais je me suis rendu compte après quelques tests et le message de Zarmakuizz que ça marchait aussi sur XP. Théoriquement, vu les fonctions et les librairies utilisées, le programme devrait fonction aussi sur Windows 98, mais bon après je n'ai encore pas testé et puis entre la théorie et la pratique...
Sinon je pense que le problème vient de la fonction de l'API Windows qui rafraichit l'affichage du fond d'écran.

//---------//

Citation : Zarmakuizz
J'aurais bien aimé voir un paramétrage en seconde, moi...ça peut être amusant de changer de fond d'écran toutes les 10 secondes.

J'ai bien pensé à mettre un paramétrage en seconde mais je me suis dit que l'application devait rester une tâche de fond et ne pas consommer du CPU "toutes les 10 secondes". En plus, changer son fond d'écran toutes les 10s, ça va bien pour s'amuser 5min mais c'est pas le but de l'application.
Hors ligne Pandilene # Posté le 14/07/2008 à 03:59:49
Groupe : Membres
N'empeche que ça marche pas pour moi...
T'as des idées de où ça pet venir ?
Hors ligne chnunu # Posté le 14/07/2008 à 13:46:18
Groupe : Membres
J'aurais d'abord une question pour toi, quel est le format de tes fonds d'écran ? Ce qu'il faut savoir c'est que Windows ne peut mettre en fond d'écran que les images bitmap (*.bmp) sous XP et que des images bitmap ou JPG sous Vista. Mon programme se charge donc d'enregistrer l'image en *.bmp quand elle est dans un autre format. Il se peut que l'erreur vienne de la conversion. Pour savoir si ça vient de là, essaye de ne mettre que des fonds d'écran au format BMP dans le dossier pris en paramètre.
Voici le code qui assure la conversion si certains trouvent des erreurs :
Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
QStringList suffixs("bmp");
        if (QSysInfo::WindowsVersion == QSysInfo::WV_VISTA)
        {
            suffixs.append("jpg");
            suffixs.append("jpeg");
        }

        if (suffixs.contains(list[indexOfFile].suffix(), Qt::CaseInsensitive))
            setWallPaper( m_LastImage );
        else
        {
            QImage *image ;
            image = new QImage(list[indexOfFile].absoluteFilePath());
            m_FileToDelete = QDir::toNativeSeparators(QDir::currentPath() + '\\' + list[indexOfFile].baseName() + ".bmp") ;
            QImageWriter *writer ;
            writer = new QImageWriter(m_FileToDelete);
            writer->write(*image);
            delete image;
            delete writer;

            setWallPaper( m_FileToDelete );
        }

Cependant je ne pense pas que l'erreur vienne de la conversion puisqu'il n'y a aucune raison que la conversion utilisant des fonction Qt marche dans certains cas et pas dans d'autres.


Je pense plutôt que l'erreur provient de la fonction qui assure le changement du fond d'écran (elle consiste à changer d'abord la valeur du registre qui enregistre le chemin du fond d'écran, puis de rafraîchir l'affichage du fond d'écran sur le bureau avec une fonction de l'API Windows).
Voici cette fonction :
Code : C++
1
2
3
4
5
6
7
void Processing::setWallPaper(QString path)
{
    QSettings settings("HKEY_CURRENT_USER\\Control Panel\\Desktop", QSettings::NativeFormat);
    settings.setValue( "WallPaper", path );

    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, NULL, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}

Si quelqu'un a une meilleure solution que cette fonction n'hésitez pas.
Hors ligne chnunu # Posté le 16/07/2008 à 20:07:05
Groupe : Membres
UUuuuuuuUUUP !!!! :-°

Pour tous ceux qui voient ce topic pour la première fois, venez découvrir SwitchEcran, logiciel de changement automatique programmé du fond d'écran sous Windows sur ---===>>> MON SITE <<<===--- .

Merci à tous.
Hors ligne linkboss # Posté le 29/07/2008 à 12:10:00
Pikachu !
Avatar
Groupe : Membres
moi non plus chez moi, ça ne marche pas. En plus je me faisais un plaisir de l'essayer, à cause de Wallpaper qui déconne... Mais bon continue, et quand ça marchera je l'utiliserai !

Il n'y a pas de bug, il n'y a que des programmeurs incompétents.

Pika pika... chu ?
Pikachu ! Pika !
Pipikachu ?

Ninten-games - Allez visiter !
 

Retour au forum "Présentation de vos projets" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 389 Zéros connectés | Requêtes SQL 9 requêtes | Temps de génération de la page : Total (SQL) 0.0591s (0.0424s)