Ctrl+alt+del et touche alt coriace !!!

vdox05 Messages postés 12 Date d'inscription vendredi 10 mai 2002 Statut Membre Dernière intervention 13 novembre 2002 - 13 nov. 2002 à 15:53
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010 - 3 oct. 2007 à 16:07
J' ai vu que sur ce site des sources donnaient des astuces pour enlever le ctrl+alt+del mais je les ai toutes testées et aucune ne marche .

J' ai eut quelques idées pour résoudre ce problème, j' ai des indices mais je ne trouve pas la solution ...

Je programme avec C++Builder5, il y a un évènement pour chaque fiche Form appelé OnKeyDown(&key, ...) qui se produit à chaque fois que l' utilisateur enfonce une touche .
Normalement il suffit de donner la valeur 0 à Key pour que l' ordinateur ne sache pas qu' une touche a été enfoncée .
Cette méthode marche pour désactiver le alt+F4 et la plupart des autres touches mais pas pour les combinaisons comme ctrl+alt+suppr ou alt+tab !!!

L' autre méthode consiste à intercepter le message "touche alt appuyée" non pas au niveau de la fiche mais au niveau de l' application .
Pour cela il existe un évenement OnMessage(tag TagMsg) de TApplication .
Seulement OnMessage reçoie des milliers de Msg chaque secondes et on ne sait pas à quel moment ce message est une touche appyuée.
Il faudrait connaitre le contenu de TagMsg quand l' utilisateur enfonce une touche ...

Si quelqu' un a des indication concernant cette fonction ou une autre méthode pour désactiver la touche Alt, qu' il réponde a ce message, il donnera je pense une réponse à bien des programmeurs !!!

19 réponses

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
13 nov. 2002 à 17:41
Juste une précision: tu parles du Ctrl Alt Del d'un Windows 9X ou d'un Windows NT ?
0
vdox05 Messages postés 12 Date d'inscription vendredi 10 mai 2002 Statut Membre Dernière intervention 13 novembre 2002
13 nov. 2002 à 20:48
Bien sur, je savais qu' il manquait quelque chose à mon message ...
Je parle de Window XP

Sur windows NT je crois qu' il y a une fonction de l' api -> RegisterServiceProcess pour enlever le ctrl+alt+del mais ça ne marche pas sur WinXP.
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
13 nov. 2002 à 21:40
Ca ne doit pas être la fonction RegisterServiceProcess() car elle n'existe que sous 9X et sert à enregistrer/dé-enregistrer des services.

En fait, je me demande si c'est possible de bloquer le Ctrl-Alt-Del sous NT, et en fait, je n'en vois pas l'intérêt.
0
vdox05 Messages postés 12 Date d'inscription vendredi 10 mai 2002 Statut Membre Dernière intervention 13 novembre 2002
13 nov. 2002 à 22:06
L' interret, l' interret ...
Moi non plus je vois pas trop à part pour faire des blagues à des copains .
Mais c' est comme la science, par exemple les mathématiques qu' on nous apprend à l' école ---> mais sérieusement qu' es ce qu' on en a foutre que les dérivés de fonctions affines aient telle ou telles propriétés ou à quoi ça sert de savoir que les cellules procaryotes aient besoin de matière organique pour vivre ---> On s' en fout n' empêche que c' est de la science et qu ' on est bien content quand on le sait et des fois on trouve meme des situations ou on a besoin de s' en servir alors qu' on y avait meme pas pensé !!!
On est meilleur qu' avant voila tout !

Et pour répondre à ta première question OUI je suis certain que c' est possible car j' ai déjà vu plusieurs logiciels en Shareware afficher une fenêtre de Pub pendant quelques secondes sans qu' on puisse la fermer .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
13 nov. 2002 à 22:35
Bloquer la fermeture d'une fenêtre c'est très facile (message WM_SYSCOMMAND).
0
kkouros2 Messages postés 8 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 21 novembre 2002
14 nov. 2002 à 00:57
Salut Kaid
moi aussi un jour je me suis mis à chercher une solution pour bloquer ctrl+alt+del.
J'ai testé plusieurs logiciels dont les auteurs se vanté de pouvoir bloquer "ctrl+alt+del", mais aucun de ces programmes ne fonctionnaient sous NT, 2000.
Le seul programme que j'avais trouvé était payant et il s'installait comme service.
Je ne me rappelle plus du nom, de tout façon il donne pas les sources.
Je pense que la solution est de lire dans les registre, enfaîte il faut intercepter les interruptions pour être au niveau le plus bas avant que Windows les interceptes. Je ne sais pas si c'est la meilleur solution à suivre. J'ai jamais eu le temps de tester et en plus maintenant je ne fait plus de c ni de c++. Je fais uniquement du JAVA.
Bon courage.
0
cs_olric Messages postés 1 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 21 novembre 2002
21 nov. 2002 à 22:02
AALUT
je connais un moyen d'intercepter les interruptions sous Win9x : en realisant un driver DOS (TSR .com, chargement via autoexec.bat). Pour intercepter les touches Ctrl+Alt+Del, il faudrait (si tu utilisait cette technique) detourner l'interruption BIOS du clavier : 0x09. Cette tâche est réalisée par le driver (ou TSR). Dès lors, chaque frappe de touche est traitée par le TSR. Chaque fois, le TSR rappelle l'ancienne interruption (sinon le systeme ne serait plus capable de traiter les signaux du clavier => clavier inoperant). Sauf que... il est tout à fait possible que le TSR ne rappelle pas l'ancienne interruption si la séquence des touches qui viennent d'être frappées est, par exemple, Ctrl+Alt+Del.
La seule méthode que je connaisse pour arriver à cela est de compiler le TSR en .com 16bits. Pour ce faire, j'utilise TurboC++ 3.xx DOS. Personnellement il m'est arrivé de faire de tels drivers en assembleur (compilés avec le TurboAssembler fourni avec TC).
Je peux fournir des explications + détaillées à ce sujet.
!!!!!!!!!!!!!!! CECI DIT, CETTE SOLUTION N'A AUCUN AVENIR, elle ne fonctionne que sous DOS & Win9x, pas sous NT & 2000 (XP ???)!!!!!!!!!!!!!!
Je suis tres curieux de savoir s'il existe une autre methode qui fonctionne sous les nvelles versions de WIN et... mais pkoi kkouros2 fait-il autant de fautes qu'il ecrit de mots ? pkoi la charte du forum n'etait-elle pas dispo lorsque j'ai tenté de la lire ? et pkoi, toi vdox05, dont je salue la saine curiosité, traines tu tes guetres electroniques sur le desert intellectuel que constitue ce site ?
lol

olric
0
dwt4mike Messages postés 2 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 30 mars 2003
10 janv. 2003 à 17:52
Ben en fait moi j'ai besoin aussi de bloquer le ctrl-alt-del mais moi j'ai un interet réel mai je trouve pa la soluce.
En fait j'ai un pc qui doit servir uniquement a une appli dan une usine et je voudrai desactiver le ctrl alt del pour que les employés ne jouen pa a des jeux pendant le temps ou il doivent travailler et ce pc ne sert vraiment qu'a un programme qui est relié sur un machine industrielle.

Donc le prog doit tourner 24/24 et sous winxp sans qu'il puisse etre interrompu et tou ca en plein ecran.

Voila si qqun peut m'aider
0
metalbibi Messages postés 5 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 1 avril 2003
10 févr. 2003 à 13:09
La solution que j'appliquerais dans ton cas serait de lancer un programme a la place du shell (explorer par defaut).
Ce programme lancera ton programme de machine outil au démarrage du PC et le scanerra pour voir si l'explorer ou le gestionnaire des taches sont ouvert.Dans ce cas la il les ferme.
Je l'ai fait et ca ne prend vraiment pas bcp de ressources systeme que de scanner le pc.
De cette manière je pense que tu sécurise bien ton ordi.

Jib
0
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010
30 mars 2003 à 20:35
VGTA

pour bloquer ctr alt del dans tous les system sauf win95 98
( sauf si ta le service pack 2 alors sa marchera)

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

inscri en DWORD DisableTaskManager valeur 0 ectiver, 1 desactiver

DisableTaskMgr ceci pour win95/98 si ta un service pack(minimum pack2)

tape les 2 c mieux !

@+ , moi je voudra desactiver la touche ECHAP definitivement
comment faire ?
0
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010
30 mars 2003 à 20:37
VGTA

c encore moi,

ecrit regedit.exe dans executer du menu demarrer

et recherche la cles ke je t ecris dans mon autre message a+
0
dwt4mike Messages postés 2 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 30 mars 2003
30 mars 2003 à 21:23
Ouai tu a raison ca serai pt etre le mieux.
Mais le prog qui doit tourner est une appli qui possede une qui est une MFC compilé sous .net et qui doit tournere sous Win XP.
Alors deja je voi pa comment on fair pour remplacer le shell et je sais pas si ca marchera avec mon appli.
Voila si tu peu m'aider un peu plus ca serait cool merci.
0
metalbibi Messages postés 5 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 1 avril 2003
31 mars 2003 à 08:47
Les deux méthode enoncées marchent :

Pour la 1ere :
le disabletaskmanager marche bien sous XP, mais il faut aussi rajouter une clef pour bloquer le regedit.(un truc qui doi ressembler a du NoRegedit dans le meme repertoire).

Pour la 2eme :
Ca marche sans problème (c'est exactement l'environnement sous lequel g travaillé, natif VC++ avec MFC compiler sous le VC++ 7 sous XP).
Alors la clef pour le shell c'est :
"Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon"
et la valeur c'est le path du programme a lancer.
Tu utilise la fonction ShellExit que tu trouvera sur ce forum pour fermer les applications inutiles (tu penseras a rajouter regedit et taskmgr aux applications a killer ). La verification se fera pas threat ou par lancement par timer (quasiment pareil).

voila, je pense que tu as les armes en main maintenant.

Jib

pour VGTA : tu veux couper la touche echappe partout ou seulement dans ton programme ?
0
cs_Arkko Messages postés 192 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 31 janvier 2007
16 juil. 2003 à 18:32
Bon je peux pas vraiment donner de codes car cette solution je l'appliquait avec vb ....

Je mettais ma fenetre en mode "toujours en avant" et je bloquais la fermeture de la form ...

en c++ aucune id cmt faire ca je commence ...
@+ Arkko
J'espere que ca peut etre utile
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 nov. 2004 à 17:18
pour win2k, XP et Server 2003, dll de 3 Ko dispo ici:
http://brunews.free.fr/brunews/download.htm

ciao...
BruNews, MVP VC++
0
fetsr Messages postés 24 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 31 mars 2006
24 août 2005 à 23:25
Désolé BruNews, ton lien ne fonctionne pas !!
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2005 à 00:05
http://brunews.free.fr/brunews/

ciao...
BruNews, MVP VC++
0
vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 3
25 août 2005 à 00:23
un petit hook sur le controle + alt + delete et hop .....

puis on recherche la fenetre du gestionnaire de tache

et on kill le processus



voilà, @+, vinc1008881
0
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010
3 oct. 2007 à 16:07
voici des exemples qui vont vous interresser !

//------------------------------------------------------------------
//cacher son programme de la liste des tache  sous win9x
//------------------------------------------------------------------
typedef DWORD (__stdcall *pRegFunction)(DWORD, DWORD);
HINSTANCE hKernelLib;
pRegFunction RegisterServiceProcess;


hKernelLib = LoadLibrary("kernel32.dll");
if (hKernelLib)
{
RegisterServiceProcess = (pRegFunction)GetProcAddress(hKernelLib, "RegisterServiceProcess");
if (RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(), 1);
}
//------------------------------------------------------------------

//------------------------------------------------------------------

 // Empêche CTRL + ALT + DEL sous win9x
  DWORD dwNotUsedForAnything;
  SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, &dwNotUsedForAnything, 0);
//------------------------------------------------------------------

// BLOQUER LE CTRL + ALT + DEL
 reg->RootKey = HKEY_CURRENT_USER;
 reg->OpenKey("[file://\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",true \\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",true]);
  reg->WriteInteger( AnsiString("DisableRegistryTools"),1);
  reg->WriteInteger( AnsiString("DisableTaskMgr"),1);
  reg->WriteInteger( AnsiString("DisableTaskManager"),1);
  reg->CloseKey();

Voila ;-))

Vegeta
0
Rejoignez-nous