INTERDIRE ALT+F4 [Résolu]

Messages postés
32
Date d'inscription
vendredi 14 août 2009
Dernière intervention
15 août 2009
- - Dernière réponse : f0xi
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 23 mai 2006 à 17:14
Bonjour,

Je souhaiterai interdire les raccourcis Alt+F4 dans un programme Delphi, plus précisément sur une form.
Pourriez-vous m'aider?
En vous remerciant.

Steven LE FERRAN - CLFrance
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
3
Merci
Salut Steven,

si ce que tu veux, c'est obliger de passer par un bouton (ou un élément de menu) pour pouvoir fermer la form, il y a un moyen très simple avec une variable boolean :

CanQuit: boolean;

Tu l'initialise à false dans l'événement OnCreate de la fiche.

procedure TForm1.ButtonQuitClick(Sender: TObject);
begin
    if ....  // contrôle éventuel
    then
    begin
        CanQuit:= true;
        Close;
    end;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   CanClose:= CanQuit;
end;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de ThWilliam
3
Merci
Salut,


je n'ai rien compris à ce que tu souhaites faire. Cependant je tire le signale d'alarme sur la méthdoe proposée par [auteurdetail.aspx?ID=341917 roud59]
: en faisant ca tu vas tout simplement jouer dans la  base de
registre. Tu vas donc bloquer sur toutes applications les touches.
Cette méthode est d'autant plus dangereuse si d'autres personnes
récupèrent ton soft : ils risquent de ne pas savoir la solution.


A ne pas utiliser par quelqu' un de peu experimenté.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
3
Merci
surtout que notre ami Roud ne semble pas savoir ou doit etre mise la valeur DisableTaskMgr et qu'il ne semble pas maitriser l'objet TRegistry en effectuant des manipulation dangereuse dessus.

et point important, si jamais le programme s'arrete de maniere inattendue ou qu'il y a une coupure de courrant, le gestionnaire des taches serat definitivement bloqué ... ce qui n'est pas trés cool au final.

trés trés mauvaise solution ... sans parler des IDS et anti-virus qui vont degager le programme quand ils en veront le comportement de ce dernier.

si tu a un main menu tu peu mettre un shortcut ALT+F4 qui bloqueras alors l'action de ce dernier.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de f0xi
3
Merci
J'irais meme plus loin fOxi : cela pue le virus à plein nez (blocage de
la barre, des icones, du bouton démarrer, puis CONTR+ALT+DEL). Voila un
mec qui est bien : on pourrait presque appeler cela une tentative de
d'infection (et oui donner comme code un virus).

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
3
Merci
Si quelqu'un a utiliser ce code qu'il prévienne immédiatement les administrateurs

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
103
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
26 juillet 2007
3
Merci
Bonjour vous tous

Si suis désolé mais j'ai fait un énorme hors sujet. J'avais compris ALT-TAB au lieu de CTRL-TAB.

Concernant ma procédure, je sais qu'elle est très dangereuse, mais j'ai déja dû l'utiliser et ce n'était pas pour un faire virus (j'ai déjà perdu des données importantes à cause d'un virus et je suis totalement contre ce genre le logiciel) J'avais fait tourner une application sur un PC et il fallait pas que l'utilisateur puisse arrêter le programe ou utiliser la machine pour d'autres choses (jeu ou surf internet par exemple,) sinon des demandes de secours ne pouvaient plus être traitées. J'ai donc vérouillé le PC ainsi. Le problème est quand le programme plante, on a plus la main sur la machine et il faut refaire un peu de DOS pour empêcher le lancement de l'appli au boot et récupérer la main.

Je ne cherche pas à me défendre de mon erreur mais j'insiste sur le fait que je n'ai pas voulu faire de mal à quelqu'un, et surtout pas aux utilisateurs de CS qui m'ont beaucoup aidé dans mes développements.

 Veuillez donc tous m'excuser de ma réponse inadaptée et dangereuse si elle est mal utilisée. Je suis réellement confus et réfléchirait beaucoup plus la prochaine fois.

Roud59

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de roud59
3
Merci
Roud59 plutot que d'utiliser un bazooka pour tuer une mouche tu devrais (dans ton application) bloquer la souris et le clavier : ca serait déjà beaucoup moins dangereux.

En espérant que personne n'ai essayé ta procedure (qui en plus contient énormément de boulettes).

@+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
103
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
26 juillet 2007
0
Merci
Salut Steven

Je t'envoie une procédure qui fonctionne bien dans mon cas. Elle est basée sur la supression de explorer.exe et qui empeche pas mal de choses dans windows.
Ca fonctionne bien avec XP et 2000. Les autres ... je ne sais pas!

var
  WindowsVerouille : boolean

procedure VerouillerWindows(Verrou : boolean);
var
  reg: TRegistry;
begin
  if Verrou = WindowsVerouille then exit;
  WindowsVerouille := Verrou;
  // Supprimer la barre de tache, les icones et la touche Windows
  if Verrou then
    KillTask('explorer.exe', 1)
  else
    WinExec('explorer.exe', SW_SHOWDEFAULT);
  // Verouille CTRL+ALT+DEL
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_CURRENT_USER;
    reg.OpenKey('Software', True);
    reg.OpenKey('Microsoft', True);
    reg.OpenKey('Windows', True);
    reg.OpenKey('CurrentVersion', True);
    reg.OpenKey('Policies', True);
    reg.OpenKey('System', True);
    if Verrou then
      reg.WriteString('DisableTaskMgr', '1')
    else
      reg.DeleteValue('DisableTaskMgr');
    reg.CloseKey;
  finally
    reg.Free;
  end;
end;

Bonne réception

Roud59
Commenter la réponse de roud59
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
0
Merci
en fait, avant de poser un code source il faut ce poser ces deux question :

mon code est il adapté a la question ?
le niveau de ce code est il du meme niveau que la personne qui pose la question ?

assurement ton petit bout de code, n'est pas et vraiment pas a mettre entre toute les mains je dirais meme qu'il serait reservé a un developpeur avertis qui sais exactement qu'elle effet le code produit sur le systeme et surtout comme inverser le processus en cas de probleme ...
donc non seulement trés bonne notion de prog mais aussi bonne notion des mecanismes de windows et notement du registre de windows.
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.