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 :

Faire un programme résident


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut Faire un programme résident
    Bonjour.
    J'aimerais savoir comment faire un programme résident mémoire en C, qui, toutes les heures, se "réveille" et execute un autre programme (via un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system ("C:\mesdoc~1\progs\mon_prog.exe");
    ).

    Je suis sous Windows, je ne me soucie pas de la portabilité (pour ce programme uniquement).

    Ce programme n'est destiné à fonctionner que sur le PC famillial donc toute autre solution pour lancer régulièrement automatiquement mon_prog.exe est envisageable.

  2. #2
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 333
    Points : 130 178
    Points
    130 178
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    A ta place je ferais un programme GUI qui ouvrirai une fenêtre cachée. Tu crées ensuite un timer avec SetTimer sur ta fenêtre avec un délai de 1 heure et tu interceptes le message WM_TIMER pour lancer ton autre programme.
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Tu peux aussi tenter le truc avec des "thread" ou des "fork", pour creer des processus divers puis tu les tue.
    De plus, tu peux intercepter les signaux envoyés.
    Birds of a feather flock together

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Points : 83
    Points
    83
    Par défaut
    il y a une commande AT qui devrait faire l'affaire, et pui saussi le programmateur de taches (ou un nom équivalent...)

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    et pourquoi pas tout simplement le planificateur de tâches de windows???

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Rubrique C -> reponse C (pas Windows)
    Birds of a feather flock together

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par freddy766
    Rubrique C -> reponse C (pas Windows)

    oui mais il l'a dit lui même:
    Ce programme n'est destiné à fonctionner que sur le PC famillial donc toute autre solution pour lancer réguliérement automatiquement mon_prog.exe est envisageable.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Le plannificateur de tâches de Windows ne permet pas de lancer l'application plus d'une fois par jour.
    La solution d'Anomaly me tente plus, mais je ne sais pas ce dont j'ai besoin pour faire une fenêtre cachée (est-ce que ça veut dire qu'elle n'apparaît pas dans la barre "démarrer"?), pas plus que pour utiliser un SetTimer.

    Même chose pour les "thread" ou "fork" (le chapitre de mon bouquin qui en parle est long et très difficile à comprendre pour moi).

    J'utilise Dev-C++, mais j'ai aussi Turbo C++.

  9. #9
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 333
    Points : 130 178
    Points
    130 178
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bubonik software
    La solution d'Anomaly me tente plus, mais je ne sais pas ce dont j'ai besoin pour faire une fenêtre cachée (est-ce que ça veut dire qu'elle n'apparaît pas dans la barre "démarrer"?), pas plus que pour utiliser un SetTimer.
    Je suppose ici que tu sais un peu programmer directement en API Win32.

    Tu crées une fenêtre avec CreateWindow, sans mettre l'attribut visible (WS_VISIBLE je crois). La fenêtre n'apparaîtra donc pas à l'écran. Après, tu appelles SetTimer (regarde la MSDN pour la syntaxe). Ce n'est pas compliqué : il suffit d'indiquer le délai, la fenêtre demandée et de préciser NULL pour la fonction à appeler (puisqu'une fenêtre a été précisée). Et après, dans la boucle des messages de ta fenêtre, tu gères le cas de WM_TIMER.
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Anomaly
    Je suppose ici que tu sais un peu programmer directement en API Win32.
    Aïe, désolé, mais non.
    Bon, c'est pas grave : j'apprendrai.
    Merci pour les conseils.

  11. #11
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 333
    Points : 130 178
    Points
    130 178
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bubonik software
    Citation Envoyé par Anomaly
    Je suppose ici que tu sais un peu programmer directement en API Win32.
    Aïe, désolé, mais non.
    Bon, c'est pas grave : j'apprendrai.
    Merci pour les conseils.
    Si tu veux essayer cette méthode, tu as un tutoriel pour réaliser une application Windows fenêtrée simple : http://bob.developpez.com/tutapiwin/

    Seules les 2 premières parties (surtout la partie 2) du chapitre 1 sont nécessaires pour faire une appli de base.

    Après, tu crées une fenêtre, comme décrit dans la partie 2, mais invisible, tu appelles SetTimer() dans le WM_CREATE, et tu ajoutes un cas WM_TIMER.

    Ce n'est tout de même pas évident, si tu n'as jamais manipulé l'API Win32. Mais il faut aussi un début à tout
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  12. #12
    Membre régulier

    Profil pro
    Inscrit en
    Août 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 81
    Points : 71
    Points
    71
    Par défaut
    Sinon pour les fork et les threads tu jette un oeil du cote de google et tu trouves des explications c tres simple d'outils

    En gros
    /*tu dupliques ton process*/
    int pid=fork()

    si ca vaut 0 tu est dans le fils sinon tu est le pere et voila

  13. #13
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 333
    Points : 130 178
    Points
    130 178
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par parisjohn
    Sinon pour les fork et les threads tu jette un oeil du cote de google et tu trouves des explications c tres simple d'outils

    En gros
    /*tu dupliques ton process*/
    int pid=fork()

    si ca vaut 0 tu est dans le fils sinon tu est le pere et voila
    Mais il est sous Windows, donc ça ne sera pas si simple...
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  14. #14
    Membre régulier

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Points : 99
    Points
    99
    Par défaut
    Citation Envoyé par Bubonik software
    Le plannificateur de tâches de Windows ne permet pas de lancer l'application plus d'une fois par jour.
    Ah Bon !!

    J'utilise le plannificateur de tache pour lancer une application plusieur fois par jour et cela fonctionne très bien
    Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière.

    Il faut cueillir les cerises avec la queue. J'avais déjà du mal avec la main !

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Mais tu ne peux pas mettre une tâche "toutes les heures" ou "toutes les 10 minutes", à moins de créer 24 tâches planifiées avec ce programme, si ?

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Anomaly
    Citation Envoyé par Bubonik software
    Citation Envoyé par Anomaly
    Je suppose ici que tu sais un peu programmer directement en API Win32.
    Aïe, désolé, mais non.
    Bon, c'est pas grave : j'apprendrai.
    Merci pour les conseils.
    Si tu veux essayer cette méthode, tu as un tutoriel pour réaliser une application Windows fenêtrée simple : http://bob.developpez.com/tutapiwin/
    Le tutoriel sur l'API windows est prévu pour Visual C++ et j'ai Dev-C++...

    Citation Envoyé par Le tutoriel API windows
    Ajoutons maintenant un fichier de code et fichier de ressources. Allez dans File/New/Files/C++ Source File. Appelez ce fichier main.cpp et validez.
    ça, c'est presque pareil avec Dev-C++.
    Citation Envoyé par Le tutoriel API windows
    Refaites la même opération mais avec un fichier de type Ressource Script nommé res.[...]
    Créons à présent le modèle de notre boîte de dialogue. Allez dans le feuillet RessourceView du panneau de travail (à gauche). Faites un clic droit sur res ressources et sélectionnez Insert/Dialog/New. Nous ne modifirons pas cette boîte de dialogue.
    Ça, par contre, je ne vois pas comment on peut le faire avec Dev-C++...
    Quelqu'un peut m'éclairer ?
    (et me dire en plus ce qu'est un fichier de ressources pour ma culture ) ?

    Merci d'avance.

  17. #17
    Membre régulier

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Points : 99
    Points
    99
    Par défaut
    Mais tu ne peux pas mettre une tâche "toutes les heures" ou "toutes les 10 minutes", à moins de créer 24 tâches planifiées avec ce programme, si ?
    Si dans Propriété de la tache plannifiée l'onglet Plannification tu clique sur nouveau et tu peux ajouter un nouvel horaire

    Je sais que ce n'est pas du C mais sa répond tout de même a ta question je pense

    PS : je suis sur win XP mais je pense que c valable pour toutes les versions
    Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière.

    Il faut cueillir les cerises avec la queue. J'avais déjà du mal avec la main !

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Merci pour cette précision
    Je vais utiliser le plannificateur de tâches en attendant de pouvoir le faire en C!

  19. #19
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 333
    Points : 130 178
    Points
    130 178
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Le tutoriel API windows
    Refaites la même opération mais avec un fichier de type Ressource Script nommé res.[...]
    Créons à présent le modèle de notre boîte de dialogue. Allez dans le feuillet RessourceView du panneau de travail (à gauche). Faites un clic droit sur res ressources et sélectionnez Insert/Dialog/New. Nous ne modifirons pas cette boîte de dialogue.
    Ça, par contre, je ne vois pas comment on peut le faire avec Dev-C++...
    Quelqu'un peut m'éclairer ?

    (et me dire en plus ce qu'est un fichier de ressources pour ma culture ) ?
    Le fichier ressources contient ce qui doit être lié à ton exécutable qui n'est pas du code. Il contient notamment : les icônes, les boîtes de dialogue dessinées, etc...

    Je ne sais pas comment faire un .rc avec DevC++ ; je doute qu'il existe un "dessineur" de boîte de dialogue gratuit. On peut le faire à la main (c'est un fichier texte), mais seuls les masochistes s'y essaieront

    Mais pour faire une fenêtre basique, on n'a pas besoin de fichier .rc. C'est pour ça que je te recommande de lire la partie 1 du tutos qui explique des bases, mais de vraiment te concentrer sur la partie 2 qui crée une fenêtre plutôt qu'une boîte de dialogue, et là, tu n'as pas besoin de fichier .rc

    (J'aurai franchement préféré que le tuto commence par ça... mais bon on n'y peut rien)
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Programmes Résidents
    Par bchass dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 18/02/2006, 15h20
  2. faire migrer programmation INFORMIX > MYSQL??
    Par idevelopper dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 08/02/2006, 17h12
  3. Programme résident
    Par BARRON BABUTUKE GNT dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/02/2006, 01h46
  4. faire un programme sans interface
    Par timsah dans le forum C++Builder
    Réponses: 8
    Dernier message: 01/02/2006, 10h16
  5. Réponses: 7
    Dernier message: 16/04/2005, 08h55

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