Changement aléatoire de fond d'écran

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

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.