Empêcher la fermeture de la fenêtre en C/C++?
Résolu/Fermé
Bonjour, je voulais savoir si c'était possible d'empêcher la fermeture de l'invite de commande DOS dans laquelle s'affiche mon programme (en C ou C++ par le biais d'une fonction par exemple ?), c'est à dire que quand le programme sera lancé, l'utilisateur ne pourra plus fermer le programme, l'interrompre ou alors si on ne peut pas je voudrait savoir si il y a un moyen de cacher la fenêtre toujours pour la même raison : que l'utilisateur ne puisse pas interrompre le programme, je suis débutant alors soyez précis SVP !
Merci !
Merci !
A voir également:
- Empêcher la fermeture de la fenêtre en C/C++?
- Forcer la fermeture d'un programme - Guide
- Sytadin fermeture - Télécharger - Transports & Cartes
- Fenêtre hors écran windows 11 - Guide
- Raccourci réduire fenetre - Guide
- Fenêtre - Guide
15 réponses
OK mais ce serait pas possible que tu me fasse une explication complète ?
Du genre la fonction pour cacher la fenêtre est :
ShowWindow("false");
Je dis n'importe quoi bien sur :)
Explique moi entièrement stp !
Merci !
Du genre la fonction pour cacher la fenêtre est :
ShowWindow("false");
Je dis n'importe quoi bien sur :)
Explique moi entièrement stp !
Merci !
Mais vous pourriez me donner un code d'exemple pour créer une clé dans le registre et pouvoir vérifier a l'aide d'une boucle si elle existe ?
Merci !
Merci !
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 mars 2009 à 20:47
12 mars 2009 à 20:47
Sur internet, tu devrais trouver ton bonheur. Voici un début de piste : http://www.geocities.com/SiliconValley/2072/prgw32rg.htm
Le problème c'est que moi et l'anglais ca fait deux j'ai 15 ans je débute je vais vous donner la description du code exact que j'aimerai avoir et si vous pourriez me le faire ca devrait aller ca doit pas être bien compliqué pour vous :
C'est simple je veux qu'au tout début du code il y ait une boucle (if par exemple) qui vérifie si une clé registre (nommée VerifKey par exemple) existe donc normalement au premier lancement du programme la clé n'est pas trouvée, le programme continue donc... Et là on crée une clé registre nommée VerifKey dans un répertoire quelquonque ainsi au deuxième et autres lancements du programme le programme s'arrêtera automatiquement au début lors de la boucle IF.
Si vous pouvez appliquer ces attributs a la clef : une valeur DWORD nommée DisableTaskMgr avec une entrée de valeur 1.
Voila merci j'aimerai qu'on me fasse ce code entierement parce que j'y connais pratiquement rien et que j'ai cherché et ca a l'air dur j'ai jsute besoin de ce bout de code très exactement j'espère que vous y arriverez et que vous avez compris le code que je veux avoir !
Merci !!
C'est simple je veux qu'au tout début du code il y ait une boucle (if par exemple) qui vérifie si une clé registre (nommée VerifKey par exemple) existe donc normalement au premier lancement du programme la clé n'est pas trouvée, le programme continue donc... Et là on crée une clé registre nommée VerifKey dans un répertoire quelquonque ainsi au deuxième et autres lancements du programme le programme s'arrêtera automatiquement au début lors de la boucle IF.
Si vous pouvez appliquer ces attributs a la clef : une valeur DWORD nommée DisableTaskMgr avec une entrée de valeur 1.
Voila merci j'aimerai qu'on me fasse ce code entierement parce que j'y connais pratiquement rien et que j'ai cherché et ca a l'air dur j'ai jsute besoin de ce bout de code très exactement j'espère que vous y arriverez et que vous avez compris le code que je veux avoir !
Merci !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai réussi en fait je bloquais parce que ce put*** de compilateur Visual Studio C++ me mettais des erreurs inexplicables je savais pas pourquoi je suis donc passé sous code::blocks et maitenant ca marche !
Merci !
Merci !
Bonjour,
Au cas ou si cela n'a pas été mis à jour !
Insérez cette ligne while (!getc(stdin)){};
avant le return 0.
Du moins pour visual studio 2013
Au cas ou si cela n'a pas été mis à jour !
Insérez cette ligne while (!getc(stdin)){};
avant le return 0.
Du moins pour visual studio 2013
Tu n'as pas de chance, notre spécialiste fiddy n'est pas de service.
Je ne suis pas un spécialiste, enfin disons que pour moi la programmation console est un lointain souvenir, mais pour avoir bien souvent vu cette question sur ce forum, je pense que fiddy t'aurait dit qu'il te fallait simplement ajouter un 'getchar' pour qu'il y ait attente de la fermeture de la fenêtre.
Bonne chance et bienvenue dans le monde merveilleux de la programmation.
Je ne suis pas un spécialiste, enfin disons que pour moi la programmation console est un lointain souvenir, mais pour avoir bien souvent vu cette question sur ce forum, je pense que fiddy t'aurait dit qu'il te fallait simplement ajouter un 'getchar' pour qu'il y ait attente de la fermeture de la fenêtre.
Bonne chance et bienvenue dans le monde merveilleux de la programmation.
Je crois que tu n'as pas bien compris ma question je veux pas emp^cher le programme de s'arrêter mais empêcher l'utilisateur du programme de le fermer parceque empêcher la fermeture du programme un simple
system("PAUSE");
suffit donc voila ou alors je demandais comment cacher la fenêtre ?
Merci !
system("PAUSE");
suffit donc voila ou alors je demandais comment cacher la fenêtre ?
Merci !
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
12 mars 2009 à 09:08
12 mars 2009 à 09:08
Salut.
Il doit y avoir une solution microsoftienne, pour tué la fenêtre sans tué le programme.
La solution que j'utilise, c'est de compiler avec l'option -mwindows avec gcc, comme ça le programme est considérer comme une application fenêtre sans faire de fenêtre, du coup il n'apparaît que dans le gestionnaire des tâches.
Par contre, impossible d'avoir des échanges avec lui par les entrées sorties standards.
Il doit y avoir une solution microsoftienne, pour tué la fenêtre sans tué le programme.
La solution que j'utilise, c'est de compiler avec l'option -mwindows avec gcc, comme ça le programme est considérer comme une application fenêtre sans faire de fenêtre, du coup il n'apparaît que dans le gestionnaire des tâches.
Par contre, impossible d'avoir des échanges avec lui par les entrées sorties standards.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 mars 2009 à 12:08
12 mars 2009 à 12:08
Salut,
Quels genres de programmes souhaites-tu faire ? L'utilisateur peut interagir avec le programme ?
Tu souhaites juste cacher l'exécution du programme à l'utilisateur (cacher la fenêtre et ne pas le faire apparaître dans le gestionnaire des processus) ou l'empêcher totalement de le fermer (même par le gestionnaire)?
Cdlt
Quels genres de programmes souhaites-tu faire ? L'utilisateur peut interagir avec le programme ?
Tu souhaites juste cacher l'exécution du programme à l'utilisateur (cacher la fenêtre et ne pas le faire apparaître dans le gestionnaire des processus) ou l'empêcher totalement de le fermer (même par le gestionnaire)?
Cdlt
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
12 mars 2009 à 12:14
12 mars 2009 à 12:14
à mon avis, il veux l'empêcher l'utilisateur de le fermer complètement. Une alternative est de le masquer (comment fermer un truc qu'on ne voit pas).
Par contre, il est possible de faire ce que tu dit ? masquer le processus au gestionnaire de processus ?
On peut aussi faire un programme qui ne peut être tuer ? (c'est chiant si il faut redémarrer win à chaque fois qu'on veux le fermer) Ou alors en utilisant les droits utilisateurs ?
Par contre, il est possible de faire ce que tu dit ? masquer le processus au gestionnaire de processus ?
On peut aussi faire un programme qui ne peut être tuer ? (c'est chiant si il faut redémarrer win à chaque fois qu'on veux le fermer) Ou alors en utilisant les droits utilisateurs ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
12 mars 2009 à 13:05
12 mars 2009 à 13:05
Par contre, il est possible de faire ce que tu dit ? masquer le processus au gestionnaire de processus ?
Oui, c'est possible. Il y a plusieurs techniques (injection de processus, modification de la table SSDT, de l'EPROCESS, etc.).
On peut aussi faire un programme qui ne peut être tuer ?
Oui, on peut. En jouant avec les droits utilisateurs, cela doit être possible.
Oui, c'est possible. Il y a plusieurs techniques (injection de processus, modification de la table SSDT, de l'EPROCESS, etc.).
On peut aussi faire un programme qui ne peut être tuer ?
Oui, on peut. En jouant avec les droits utilisateurs, cela doit être possible.
En gros le meilleur ce serait que l'utilisateur puisse voir le programme mais qu'il ne puisse pas le fermer ou l'arrêter (gestionnaire de tache aussi si c'est possible) mais apparement certains disent que c'est possible je voudrait qu'on m'explique SVP :)
Merci !
Merci !
L'empêcher totalement de le fermer (même par le gestionnaire) serait le meilleur...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 mars 2009 à 17:07
12 mars 2009 à 17:07
Ok. Dans ce cas, ce que tu peux faire, c'est de cacher la console (fonction ShowWindow de windows.h) ou tout simplement de ne pas la créer.
Et tu empêches l'utilisateur d'accéder aux gestionnaires des processus. Pour cela, tu dois modifier une valeur dans la base de registre : https://www.generation-nt.com/desactiver-l-acc-s-au-gestionnaire-des-taches-de-windows-astuce-24639-1.html
Cdlt
Et tu empêches l'utilisateur d'accéder aux gestionnaires des processus. Pour cela, tu dois modifier une valeur dans la base de registre : https://www.generation-nt.com/desactiver-l-acc-s-au-gestionnaire-des-taches-de-windows-astuce-24639-1.html
Cdlt
Je voulais aussi savoir comment faire pour que quand l'utilisateur ouvre le programme une fois, le ferme, imaginons qu'il éteint son ordi et que quand il le rallume et qu'il ouvre le programme une autre chose se passe dans le programme ? Vous me comprenez ?
Merci !
Merci !
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 mars 2009 à 18:24
12 mars 2009 à 18:24
T'écris une valeur dans la base de registre. Si la valeur existe, c'est que ce n'est pas la première fois que le programme se lance.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 mars 2009 à 08:23
13 mars 2009 à 08:23
à 15 ans, il y a des gars qui ont cracker la sécurité du pentagone américain.
Alors, tu peux réussir à lire une pauvre page en anglais (à ton age, tu doit déjà avoir quelques années de cour d'anglais) et faire ce petit programme. Au moins essai, met l'essentiel dedans, et si tu bloques, soumet nous le code source, on t'aidera à comprendre ce qui ne va pas.
Alors, tu peux réussir à lire une pauvre page en anglais (à ton age, tu doit déjà avoir quelques années de cour d'anglais) et faire ce petit programme. Au moins essai, met l'essentiel dedans, et si tu bloques, soumet nous le code source, on t'aidera à comprendre ce qui ne va pas.
12 mars 2009 à 17:58
Sinon tout simplement :
Cdlt