Modifier le wallpaper de manière aléatoire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 692 fois - Téléchargée 33 fois

Contenu du snippet

Ce code permet de chager votre fond d'écran.

Pour ce faire, mettez vos images (bmp) dans un même répertoire et nommez les par un numéro(1.bmp,2.bmp...).

Enfin mettez le chemin du répertoire en paramètre de l'exe

Source / Exemple :


program The_wall;
{$APPTYPE CONSOLE}
uses
  sysutils,windows,registry;

var
  chemin,oldbmp : string;
  SRF : TSearchRec;
  nbfic,i : integer;
begin
  nbfic:=0;
  // Détection du parametre sinon fermeture;
  if paramcount>0 then
  begin
     with tregistry.create do
     try
        rootkey:=HKEY_CURRENT_USER;
        if openkey('\Control Panel\Desktop',false) then
           oldbmp:=readstring('Wallpaper');
     finally
        free;
     end;
     chemin:=paramstr(1);
     writeln('recherche des fichiers');
     // Recherche des fichiers commencant par un numéro
     if FindFirst(chemin+'\*.bmp',faAnyFile,SRF)=0 then
     begin
        if strtointdef(copy(SRF.name,0,1),-1)<>-1 then
           Inc(nbfic);
        while findnext(SRF)=0 do
        begin
           if strtointdef(copy(SRF.name,0,1),-1)<>-1 then
              Inc(nbfic);
        end;
     // Fonction aléatoire sur ces fichiers
     randomize;
     i:=random(nbfic);
     // Evite de retouver le même fond d'écran
     while i=strtoint(copy(oldbmp,length(chemin)+2,1)) do
         i:=random(nbfic);
     //Affectation du nouveau fond d'écran
     writeln('Affectation');
     chemin:=chemin+'\'+inttostr(i)+'.bmp';
     SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar(chemin),SPIF_UPDATEINIFILE);
     end;
  end;
end.

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.