Programmation en C

Résolu/Fermé
Utilisateur anonyme - 27 mars 2011 à 15:04
 Utilisateur anonyme - 27 mars 2011 à 21:42
Bonjour,

j'ai fait un programme pour eteindre l'ordi (avec la fonction "system")mais quand je demande au programme d'eteindre l'ordi, il y a une fenetre avec marqué : "le système s'arretera dans moins d'une minute" mais moi je veux qu'il n'y ai rien marqué quand je demande d'areté l'ordi

code :

#include <stdio.h>
#include <stdlib.h>

int menu(int choixDuMenu);

int main()
{
int choixMenu = 0;

choixMenu = menu(choixMenu);

if(choixMenu == 1)
{
system("shutdown -h");
}

if(choixMenu == 2)
{
system("shutdown -r");
}

return 0;
}

int menu(int choixDuMenu)
{
printf("1. Eteindre l'ordinateur\n");
printf("2. Redemarrer l'ordinateur\n\n");
printf("Votre Choix : ");
scanf("%d", &choixDuMenu);
return choixDuMenu;
}


ps : il me dit pareil quand je demande de redemarrer l'ordi

4 réponses

Le Dodo Messages postés 1934 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 246
27 mars 2011 à 15:25
c'est une sécurité pour laisser le temps aux programmes de se fermer avant l'extinction totale du PC.
1
Utilisateur anonyme
27 mars 2011 à 15:28
ok donc je ne peux pas enlever la securité ?
0
Le Dodo Messages postés 1934 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 246
27 mars 2011 à 16:27
je sais pas. je sais qu'il y a une sécurité, mais je sais pas comment l'enlever. Il y a toujours un moyen de l'enlever, mais je sais pas lequel.
0
ouaf Messages postés 105 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 27 mars 2011 15
27 mars 2011 à 19:58
La fonction système envoie les paramètres du programme dans la même chaîne de caractères, donc s'il y avait une option permettant de régler le délai il faut fabriquer une chaine de caractères adaptée du style system("shutdown -t -ms"); fabriquée dynamiquement en écrivant dans un tableau ;) Il n'est pas possible il me semble d'envoyer des variables a la fonction system() surtout que ta variable est dans une chaine de caractères, donc le compilateur ne voit pas le %d et plante a delai ;)
1
Utilisateur anonyme
27 mars 2011 à 19:59
merci je vais essayé sa
0
Utilisateur anonyme
27 mars 2011 à 17:16
aussi j'ai rajouter ce bout de code mais il ne marche pas (il veut pas le compiler) :

if(choixMenu == 3)
{
int delai = 0;

do
{
printf("Entrez le nombre de secondes avant l'extinction (entre 0 et 600) : ");
scanf("%d", &delai);
if(delai < 0 || delai > 600)
{
printf("Entrez un nombre entre 0 et 600\n\n");
}
}while(delai < 0 || delai > 600);

system("shutdown -t %d", delai);
}



donc sa bloque au niveau de la fonction system
ya t'il une solution ?
0
Impossible comme cela car vous appelez la fonction windows d'arret. Donc, sa fonctionne. Il faut se substituer a windows pour obtenir l'effet recherché. si vous souhaitez réaliser des logiciels personnels, vous avez peut-être une solution avec le langage Nox.
0
Utilisateur anonyme
27 mars 2011 à 21:42
ok mais le langage Nox n'a rien a voir avec le C ?
0