Changement aléatoire de fond d'écran

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 016 fois - Téléchargée 37 fois

Contenu du snippet

Changement aléatoire de fond d'écran
à chaque démarrage gràce à la base de registre
(testé sur 98)

Source / Exemple :


#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include "project1.h"
#include <time.h>

#define CA_FOIRE        0
#define C_BON           1

class Programme
{
        HINSTANCE Hinst;
        LPSTR NomFic;
public:
        Programme(HINSTANCE);
        BOOL ChargeAleatoire();
        BOOL RemplaceRegistre();
		int Msg( LPSTR fmt, ... );
};

Programme *CProg;

int WINAPI WinMain(HINSTANCE, HINSTANCE Hinst, LPSTR, int)
{
        BOOL Err=FALSE;

        CProg = new Programme (Hinst);
        CProg->ChargeAleatoire();
        CProg->RemplaceRegistre();

        delete(CProg);
        return Err;
}

Programme :: Programme (HINSTANCE Hinstance)
{
        Hinst=Hinstance;
		NomFic=(LPSTR) malloc(100);
        return;
}

Programme :: ChargeAleatoire(void)
{
        int a,i,Nb_Fonds;
        time_t tim;
		char Buffer[512];
        FILE *f=fopen("..\\Fonds\\index.dat","rt");

        if (!f) return CA_FOIRE;

        fscanf(f,"%d",&Nb_Fonds);
	
// fct aléatoire artisanale
// juste pour le fun
        a = (int) time(&tim);
		a%=Nb_Fonds;
		a++;

		for (i=0;i<a;i++)
        {
               fscanf(f,"%s",Buffer);
               if (feof(f)) return CA_FOIRE;
        }
        strcpy(NomFic,Buffer);
        return C_BON;
}

Programme :: RemplaceRegistre(void)
{
	HKEY hSoftKey,hCompanyKey;
	DWORD dw;
	
	RegOpenKeyEx(HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, KEY_WRITE|KEY_READ,
		&hSoftKey);
	RegSetValueEx(hSoftKey,"WallPaper", NULL, REG_SZ,
				(LPBYTE)NomFic, (5+1)*sizeof(TCHAR));

	return C_BON;
}
	
Programme :: Msg( LPSTR fmt, ... )
{
    char buff[256];
    va_list va;

    va_start(va, fmt);
    wvsprintf(buff, fmt, va);
    va_end(va);
    lstrcat(buff, "\r\n");

    MessageBox( NULL, buff, "Ced Message", MB_OK );

	return C_BON;
}

///////////////////////////////////////////////
///     index.dat
///   2
/// c:\blabla\fonds\image1.bmp
/// c:\blabla\fonds\image2.bmp
// et ainsi de suite ...
///////////////////////////////////////////////

Conclusion :


Bof, ça change juste le fond d'écran à chaque démarrage ; il faut qd même mettre le raccourci du binaire dans le menudémarrer\programmes\démarrage
+créer un dossier fonds juste en dessous du dossier contenant le binaire, et créer au bloc-notes un index.dat comme indiqué à la fin du listing (enfin tout ca peut etre bidouillé)

Sinon ca manquait un exemple de manip dans la base de registre

A voir également

Ajouter un commentaire

Commentaires

sitesref
Messages postés
40
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
31 juillet 2004
-
tu peux trouver toutes les API's dans deux endroits:

1) les API's Windows sur MSDN (fais comme moi, télécharge le Platform SDK, c'est bine pratique)

2) Les API's spécifiques à ton EDI , tu les trouves dans les fichiers d'aides joints (par ex, pour bcb6, tu trouves tous dans les fichiers .hlp du dossier Help)

par ex, je crois que RegOpenKeyEx est une API Windows...

nn
Darkstone91
Messages postés
9
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
15 juillet 2005
-
vous trouvez ou tout ces API?????
Ostrogoth22
Messages postés
5
Date d'inscription
dimanche 25 novembre 2001
Statut
Membre
Dernière intervention
14 août 2002
-
le mail est valide !!!!!
lorsque l'on a pas l'audace de metre son nom et un mail valide on la boucle !!!
clappe la un peu toi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.