IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Comment savoir si le PC Windows a redémarré (en C) ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut Comment savoir si le PC Windows a redémarré (en C) ?
    Bonjour,

    Dans mon programme C, afin de continuer ou non son traitement, je dois vérifier si le PC a été redémarré. Comment faire ?

    En fait, la 1ère fois que le programme est lancé, il fait un traitement.
    Si le programme est lancé une 2nd fois sans avoir redémarré le PC entre les 2, il doit s'arrêter.
    Si le programme une 2nd fois alors que le PC a redémarré entre les 2, alors il doit continuer son traitement.
    J'avais bien pensé à vérifier une variable d'environnement, mais celle-ci n'est valable que pour le process en court. Ceci ne peut donc pas fonctionner.
    J'avais pensé aussi à vérifier un fichier sur le disque mais ceci ne peut pas fonctionner non plus puisque le fichier existerait toujours au reboot du PC.
    J'avais pensé aussi à vérifier une clé de registre mais j'arrive toujours dans le même cas de figure, ceci ne peut donc toujours pas fonctionner.
    Le seul moyen que j'ai donc trouvé (qui me parait pas trop mal) est d'utiliser la mémoire vive (qui se trouve donc purgée lors du redémarrage du PC) mais je ne sais pas comment faire.

    Merci donc pour votre aide.

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par Korben-Dallas Voir le message
    J'avais pensé aussi à vérifier un fichier sur le disque mais ceci ne peut pas fonctionner non plus puisque le fichier existerait toujours au reboot du PC.
    J'avais pensé aussi à vérifier une clé de registre mais j'arrive toujours dans le même cas de figure, ceci ne peut donc toujours pas fonctionner.
    Tu fais un programme qui se lance au démarrage de Windows une seule fois et qui modifie le fichier/l'entrée dans le registre. Une fois exécuté, ce programme s'enlève des programmes à lancer. Ça peut être géré dans un seul exécutable, avec des paramètres passés en ligne de commande. Par contre, je crois que ça nécessite des droits élevés sur Vista/7.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Mon programme est déja exécuté au démarrage du PC, et notre environnement ne permet pas trop de rajouter d'autres programmes.
    Il faut savoir que mon programme devra être exécuté sur environ 60000 postes de travail.
    Il me faut donc faire en sorte que mon programme fasse tout le traitement. Bloquer le traitement si pas eu de reboot du PC et si il y a eu reboot alors continuer le traitement.

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    Si tu es sûr de ne travailler que sous Windows, le mieux est un mutex nommé, je pense.

    Sinon, il y a plein de façon différentes de faire de la communication entre processus :

    http://msdn.microsoft.com/en-us/libr...ockets_for_ipc

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    OK alor slà ça dépasse mes compétences
    Autant créer une variable environnement (qui se supprime au reboot) je pensais que ça allait être simple mais alors là interraction entre plusieurs process même si mon programme (et donc process s'arrête) alors là... c'est chaud.
    Pour revenir sur la solution de création d'une variable d'environnement, n'y a-t-il pas moyen d'en créer une qui soit visible tout le tps de la vie de Windows ? et pas seulement le tps de vie du process ? genre variable d'environnement system mais qui soit supprimé au reboot. ou un autre moyen.

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    Utiliser ces objets n'est pas beaucoup plus difficile que définir une variable d'environnement… L'idée générale étant que, si tu arrives à communiquer avec un autre processus, c'est que cet autre processus est en vie.

Discussions similaires

  1. comment savoir si mon Windows XP est authentique
    Par salimtrois dans le forum Windows
    Réponses: 2
    Dernier message: 11/09/2012, 10h28
  2. Réponses: 2
    Dernier message: 06/08/2012, 14h43
  3. Réponses: 2
    Dernier message: 27/09/2011, 13h30
  4. Comment savoir quand une base a été redémarrée?
    Par farenheiit dans le forum Administration
    Réponses: 2
    Dernier message: 17/12/2007, 11h42
  5. Réponses: 4
    Dernier message: 10/09/2002, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo