CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Comment mettre une demo comme screensave

pouky10
pouky10
Niveau 6
26 mars 2005 à 15:59:47

Salut, j´ai fais une demo(animation en c++), puis j´ai un exécuteur, j´avais écris sur se forum on m´avait dit de le changer en scr ce que j´ai fais et quand je clique à droite dessus je peux cliquer sur instalé pour l´installé dans les screensavers(windows xp), mais il devient après un petit temps un fond noir c´est tout, comment cela que dois-je faire?

lag-it
lag-it
Niveau 10
26 mars 2005 à 17:09:11

Suffit de renommer ton *.exe. en *.scr il me semble :)

lag-it
lag-it
Niveau 10
26 mars 2005 à 17:09:50

A zut javais pas lu tout le message :-d

Sinon je sais pas pour ton prob, désolé...

Faaq
Faaq
Niveau 3
26 mars 2005 à 18:45:35

Je sais pas si cela t´aidera mais voici la source d´un screensaver : http://www.cppfrance.com/code.aspx?ID=18145

J´avais essayé et simplement renommer le . exe en . scr ne plait pas à windows.

dnob700
dnob700
Niveau 10
27 mars 2005 à 00:26:03

un . scr c´est exactement la même chose qu´un . exe dans le fond.

La seul différence c´est que windows appelle les . scr en leur passant des argument sur la ligne de commande selon qu´on veut leurs propriété, les lancer, les lancer en mode apercu, ou encore en mode tout petit ( dans la fenêtre de visualisation des propriétées d´affichage).

donc en gros ton programme il faut qu´il vérifie que le paramètre est corercte ( pour savoir qu´elels sont les paramètre cré un petit programme qui se contente d´afficher la ligne de commande et mets le en . scr et lance le.

Puis ton programme ne se lance que lorsqu´il recoit le bon paramètre sur la ligne de commande sinon il se ferme immédiatement.

pouky10
pouky10
Niveau 6
28 mars 2005 à 17:40:20

dnob peux-tu me dire comment fonction la ligne de commande(je ne m´en sert po vraiment et je n´ai po vraiment vu de tutorial la dessus). je sais comment lire les argument mais comment les modifier je ne sais pas. Que veux-tu dire par vérifier d´il sont correcte? Que dois-je faire?

ps: jai fait le programme suivant(lui a l´air de fonctionné en sreensaver) qui affiche la ligne de commande(je ne sais pas si ca peux t´aider à ma réponse):

  1. include < iostream.h>
  2. include < stdlib.h>

int main(int argc,char* argv[])
{
cout < < argc < < " \n";
system("PAUSE");
cout < < endl;
for(int ar=0;ar<argc;ar++)
{
cout < < argv[ar] < < " \n";
}
system("PAUSE");
return 0;
}

En . exe , il n´a qu´un argument, le répertoire.
en . scr 2 argument le répertoire et / s

puis en screensaver en pesant sur apercu j´ai 2 fois mon prog qui ouvre, la première fois j´ai les même argument que quand il était en . scr. La deuxième exécution elle affiche le répertoire , / p et un nombre à 6 chifrre.

pouky10
pouky10
Niveau 6
28 mars 2005 à 22:34:15

:up:

simhuy
simhuy
Niveau 7
28 mars 2005 à 22:36:09

Eh pouky10 tes le seul on-line ici apart moi

simhuy
simhuy
Niveau 7
28 mars 2005 à 22:38:07

a tiens non

dnob700
dnob700
Niveau 10
28 mars 2005 à 23:49:50

le répertoire, c´est une convention.

après / s je crois que c´est ça, donc en gros, tu ne lance ton programme QUE si le deuxième argument est / s.

le / p suivit d´un numéro, c´est pour l´apercu que tu voit dans la toute petite fenêtre dans la boite de dialogue des écran de veille. et donc le numéro qu´il te donne c´est l´adresse de cette fenêtre pour que tu t´affiche dedans, mais pour l´instant oublie ça et dit juste à ton programme de ne pas se lancer si l´argument est / p.

Pour le reste, ce que tu sait faire est largement suffisant, car il n´y a pas besoin de " modifier" les argument.
juste de les lire comme tu a fait.

pouky10
pouky10
Niveau 6
30 mars 2005 à 00:40:53

Ça ne marche toujours pas, mais comment au juste comparer le 2e argument avec / s , avec strcmp ou if(arg[1] ! = ´/s´) ou if(arg[1] ! = " /s") ou comment?
Voici mon programme si tu veux le compiler et le tester(voici l´image http://img11.exs.cx/my.php?loc=img11&image=32sprites3uk.png et changela en bmp):

  1. include < stdio.h>
  2. include < stdlib.h>
  3. include < SDL/SDL.h>

SDL_Surface *screen;

class sprite
{
public:
int nombre; / /chiffre à afficher
int vitesse; / / vitesse
int next; / /temps du prochain changement
static int total; / /nombre de chifrre
static SDL_Surface *ima;
SDL_Rect r,d;
sprite(int time); / /constructeur

void actusprite(int &) / / regarde si on doit chager d´étape
{
if(time > next)
{
next= time +vitesse;
nombre++;
if(nombre>10)
nombre=0;
r.x=nombre*32;
}
}
};

int sprite::total=0; / / déclare les membre static de sprite
SDL_Surface *sprite::ima =SDL_CreateRGBSurface(SDL_HWSURFACE, 800, 600, 32, 0, 0, 0, 0);

sprite::sprite(int time=SDL_GetTicks())
{
int temp=0;
nombre=0; / /organise chaque sprite
vitesse=(rand()%2000)+200;
next=time;

r.x=nombre*32; / /surface de départ
r.y=0;
r.w=32;
r.h=32;

d.x = ( total%25)*32; / /surface d´arriver
d.y=(total/25)*32;
d.h=32;
d.w=32;

total++;

}

void initsdl() / /initialise la sdl
{
if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER)<0)
{
printf("SDL can´t init %s" , SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
SDL_ShowCursor(0);
screen
=SDL_SetVideoMode(800,600,32,SDL_FULLSCREEN|SDL_HW
SURFACE|SDL_DOUBLEBUF);
if(screen==NULL)
{
printf("Can´t set video mode %s", SDL_GetError());
exit(2);
}
sprite::ima= SDL_LoadBMP("32sprites.bmp");

}

int main(int argc, char* argv[])
{

if(strcmp(argv[1],"/s") ! =0) exit(0);
SDL_Event event;
bool done =true;
initsdl();
int i;

srand(SDL_GetTicks()); / /nombre aléatoire

int time;
sprite chiffre[476];// tout les nombre

while(done==true)
{
time=SDL_GetTicks(); / /réorganise les sprite à la bonne étape
for(i=0;i<476;i++)
{
chiffre[i].actusprite(time);
}

SDL_PollEvent(&); / /attend une touche
if(event.type==SDL_KEYDOWN ) break;

for(i=0;i<476;i++)
{
SDL_BlitSurface(sprite::ima, &[i].r, screen , &[i].d);
}
SDL_Flip(screen);
}

return 0;
}

pouky10
pouky10
Niveau 6
30 mars 2005 à 00:43:27

Le programme bug avec if(strcmp(argv[1],"/s") ! =0) exit(0); , mais sans rien, il ne fonctionne pas en screensaver

pouky10
pouky10
Niveau 6
30 mars 2005 à 17:17:23

:up:

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment