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

MFC Discussion :

Figer l'écran d'un PC


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Points : 112
    Points
    112
    Par défaut Figer l'écran d'un PC
    Bonjour,

    Je sais que cette requête pourra paraitre bizarre voire éveiller des soupçons mais c'est un réel besoin pour une appli ...

    J'aimerai donc savoir s'il est possbile de figer l'ecran de manière a ce que toute tentative d'affichage d'une fenetre soit trappée ?

    Pourquoi ? Dans une appli, je vérifie la présence de ressources au démarrage et avant l'affichage de la vue principale de mon appli. Parmi ces ressources, 2 ouvrent une fenêtre...

    Jusqu'à présent, ça allait suffisamment vite pour que cela passe inaperçu mais des petits soucis nous conduisent à mettre une pause et du coup, on voit bien les fenêtres...C'est pas très joli....
    Comme je n'ai aucun moyen d'empêcher ces fenêtres de s'afficher, j'aimerai figer l'écran de manière à ce que rien ne s'affiche, un peu a la manière de CWnd::LockWindowUpdate mais plutot pour tout l'ecran et ce qu'elle que soit l'appli qui ouvre cette appli...

    Est-ce faisable ? et si oui, comment ?

    Toute idée est la bienvenue

    Merci

    V

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 212
    Points : 12 384
    Points
    12 384
    Par défaut
    C'est aller de Charib en Sylla.

    Le problème, c'est l'affichage de tes fenêtres.
    C'est quoi comme fenêtres ?

  3. #3
    Membre régulier
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est aller de Charib en Sylla.
    ??

    Le problème, c'est l'affichage de tes fenêtres.
    C'est quoi comme fenêtres ?
    Bonjour

    Ce sont des fenêtres de programmes externes. Si des ressources pour ces softs (des dongles) ne sont pas présentes, j'ai des fenêtrés qui me disent "Manquent kkchose". Je voudrais que ces fenêtres, que je ne peux pas intercepter, ne soient pas visibles pas l'utilisateur (il n'a pas besoin de savoir les outils annexes qu'on utilise...) d'où l'idée de figer l'écran durant un certain temps...

    V

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    C'est justement totalement à l'encontre d'un système multitâche préemptif, ce que tu veux faire... Cela n'arrive que lorsque l'on a à moitié crashé l'OS, donc inutile de chercher une API pour faire ça : elle n'existe pas.

    Au mieux, tu peux chercher ces fenêtres dans un thread, et leur envoyer des messages pour les fermer automatiquement, mais c'est à peu près tout ce qui est possible sans avoir accès au code de ces applications (où un sémaphore aurait pu régler très proprement le souci...).

  5. #5
    Membre régulier
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    C'est justement totalement à l'encontre d'un système multitâche préemptif, ce que tu veux faire... Cela n'arrive que lorsque l'on a à moitié crashé l'OS, donc inutile de chercher une API pour faire ça : elle n'existe pas.


    Au mieux, tu peux chercher ces fenêtres dans un thread, et leur envoyer des messages pour les fermer automatiquement, mais c'est à peu près tout ce qui est possible sans avoir accès au code de ces applications
    c'est ce que je fais mais ca laisse tout de meme le temps a la fenetre de s'afficher et ca clignote, c'est pas bo

    (où un sémaphore aurait pu régler très proprement le souci...).
    Ah ?? peux-tu detailler un peu stp

    V

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par vdaanen Voir le message
    c'est ce que je fais mais ca laisse tout de meme le temps a la fenetre de s'afficher et ca clignote, c'est pas bo
    Sans les sources des applications annexes, il n'y a pas d'autre solution à ton problème.

    Citation Envoyé par vdaanen Voir le message
    Ah ?? peux-tu detailler un peu stp
    Très simple : avec un sémaphore (ou signal), tu peux synchroniser autant de processus que tu veux sur un point particulier de leur exécution, ce qui te permet d'attendre (dans tes deux processus faisant surgir des fenêtres indésirables) le fait que le processus principal soit suffisamment avancé pour que le problème ne se produise plus, donc plus de pop-ups gênante.

    Le principe : les deux processus en questions se mettent en attente d'un sémaphore (WaitForSingleObject), et quand le processus principal a fini les initialisations permettant de ne plus avoir l'erreur, alors il signale l'objet et va donc débloquer les deux autres processus jusque là bloqués.

    Est-ce suffisamment clair ?

  7. #7
    Membre régulier
    Profil pro
    System Integration Project Manager
    Inscrit en
    Octobre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : System Integration Project Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 219
    Points : 112
    Points
    112
    Par défaut
    Merci pour ces explications... Ca ne sera pas facile a mettre en oeuvre mais c'est un depart pour une reflexion ...

    V

  8. #8
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par vdaanen Voir le message
    Merci pour ces explications... Ca ne sera pas facile a mettre en oeuvre mais c'est un depart pour une reflexion ...
    Le plus dur reste à trouver, dans le code, les points-clé où tu peux bloquer (ou autoriser) l'exécution en attendant que les conditions qui provoquaient l'erreur aient disparu.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 212
    Points : 12 384
    Points
    12 384
    Par défaut
    aller de Charib en Sylla - > http://fr.wikipedia.org/wiki/Charybde_et_Scylla

    Si ces logiciels sont un minimum sérieux et professionnels, soit ils disposent d'option dans la ligne de command (\quiet ?), soit d'un élément de configuration (.ini, clé de registre etc.).
    En clair, avez-vous lu leur documentation ?

Discussions similaires

  1. Figer l'écran pendant le déroulement d'une macro Excel 2003
    Par LAGARDETTE dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/10/2012, 21h12
  2. [AC-2003] Figer l'écran pendant modif
    Par cbleas dans le forum IHM
    Réponses: 2
    Dernier message: 10/02/2011, 23h04
  3. figer l'écran lors de l'exécution d'une macro
    Par julien0000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/08/2008, 11h35
  4. [ACCESS] : Figer l'écran
    Par basto dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2007, 14h25
  5. Figer l'écran à l'execution de shell
    Par seroa dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 23/06/2006, 10h53

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