Réatribuer les touches de Fonctions

Résolu
cs_stender Messages postés 11 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 17 mai 2008 - 11 avril 2008 à 16:21
duck18 Messages postés 1 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 4 février 2009 - 4 févr. 2009 à 17:25
Bonjour,

Bon j'ai cherché un peu partout sur le net et dans différents forum et nul part j'ai trouvé d'indice !. Alors je viens demander de l'aide
 j'ai essayé de poster ce message dans débutant mais je crois m'être trompé de section alors peut-être sous systeme cela est plus logique

Voilà mon problème, je cherche à affecter du texte à mes touches de fonction quelque soit le soft sous lesquels je suis par exemple IE Outlook etc etc...alors j'utilise un hook clavier via un timer ça ok ça semble marcher,

mais je souhaite bloquer la programmation par défaut de ces touches, c'est à dire le F1 qui envoi l'aide quand je suis sous IE par exemple pour que ce soit mon programme qui prenne le dessus.

Comment procéder ?


Que dois-je faire ?


Une aide ?


Un indice ?


Un bout de code ?
Une solution ?



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Mais non je désespère pas ça fait juste  15 jours que je cherche.




Merci d'avance.
A voir également:

6 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
11 avril 2008 à 18:28
Salut,

oui c'est parfaitement possible ... sans Hook et sans Timer

Type
  TForm1 = Class (TForm)
    Procedure FormCreate(Sender: TObject);
    Procedure FormDestroy(Sender: TObject);
  Private
    { Private
declarations }
    HotKeyID1 : Integer;
    Procedure WMHotKey(Var
Msg: TWMHotKey); Message WM_HOTKEY;

    Procedure RegisterHotKeys;

    Procedure UnRegisterHotKeys;

  Public
    {
Public declarations }
  End;

Var
  Form1: TForm1;

Implementation

{$R
*.dfm}
Procedure
TForm1.WMHotKey(Var Msg:
TWMHotKey);
Begin
  If MSG.HotKey =
HotKeyID1 Then
   MessageBox(Handle ,
'Touche F1 pressée', 'Information', MB_ICONINFORMATION Or
MB_SETFOREGROUND);
End;

Procedure TForm1.RegisterHotKeys;

Begin
  HotKeyID1 :=
GlobalAddAtom('Hotkey1');

  RegisterHotKey(Handle, HotKeyID1, 0, VK_F1);

End ;

Procedure TForm1.UnRegisterHotKeys;
Begin
  UnRegisterHotKey(Handle, HotKeyID1);

End;

Procedure TForm1.FormCreate(Sender: TObject);

Begin
  RegisterHotKeys;
End;

Procedure
TForm1.FormDestroy(Sender: TObject);
Begin

  UnRegisterHotKeys;
End;

End.

 
@+
Cirec

<hr siz ="" />
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
12 avril 2008 à 10:36
commence déjà par créer une nouvelle application ... complète le code comme l'exemple que je t'ai donné mais surtout n'oublie pas de lier les deux évènement OnCreate et OnDestroy (par l'intermédiaire de l'inspecteur de propriétés)

puis tu démarres l'application ... tu peux ensuite en démarrer une autre et appuyer sur F1 tu verras alors que c'est mon exemple qui prend la main à chaque fois et que la touche F1 n'affiche plus l'aide (ou que ce soit)

 
@+
Cirec

<hr siz="" />
3
cs_stender Messages postés 11 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 17 mai 2008
11 avril 2008 à 21:33
Bon je test ce soir si j'ai le temps ou demain, ce que tu m'a donné et si ça colle avec mon besoin je repasse te remercier aussitôt :)))))))
0
cs_stender Messages postés 11 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 17 mai 2008
11 avril 2008 à 23:26
Hummm j'ai honte, j'ai collé le code sous Delphi 7 et quand je le lance rien ne se passe si je press F1 quelle que soit la touche d'ailleurs !
Je ne dis pas que le code ne marche pas loin de là mais plutôt que je suis pas "foutu" de le faire tourner :(
alors je cherche j'ai essayé de coller un composant Hotkey mais rien...

si tu as un petit coup de pousse de plus ça serais vraiment pas mal.

encore merci d'avoir pris le temps de m'aider.
0

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

Posez votre question
cs_stender Messages postés 11 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 17 mai 2008
12 avril 2008 à 18:28
Impec !!!

Encore merci d'avoir pris le temps de me répondre et d'autant plus pour la petite précision de lier OnCreate et OnDestroy.
C'est vraiment très agréable d'arriver à d'avancer

Bon j'espère ne pas avoir à revenir avant un bon moment ;-)
0
duck18 Messages postés 1 Date d'inscription mercredi 4 février 2009 Statut Membre Dernière intervention 4 février 2009
4 févr. 2009 à 17:25
Bonjour à tous,

J'ai utilisé ce même code source pour intercepter la touche décimal du pavé numérique, cela fonctionne sans problème, mais je souhaite retransmettre l'événement avec comme valeur de touche la virgule. Est-ce que cela est possible ? J'ai bien essayé avec un TranslateMessage mais ce n'est pas le même type de variable.
0