Téléchargé 5 fois
Vote des utilisateurs


Détails
Licence : Libre
Mise en ligne le 2 février 2025
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
CapNum
CapNum
CapNum fonctionne sous Windows. C'est un indicateur qui permet de connaître l'état du verrouillage des majuscules et des chiffres.
Quand on lance l'application, une icône vient se loger dans la zone de notification. Cette icône varie selon l'état de verrouillage :
- icône (gris-gris) => Aucun verrouillage;
- icône (bleu-gris) => Majuscules verrouillées;
- icône (gris-vert) => Chiffres verrouillés;
- icône (bleu-vert) => Majuscules et chiffres verrouillés.
Attention : Il faut que l'affichage de l'application dans la zone de notification soit autorisé.
Si nécessaire, un double clic sur l'icône dans la barre de notification permet d'ouvrir l'application en fenêtre normale.
Les indications y sont visibles et actives. L'application peut alors être fermée par cette fenêtre.
L'icône de l'application est visible dans la barre des taches.
L'application étant notamment conçue pour les PC portables et les claviers qui n'offrent pas d'indicateurs de verrouillage des majuscules et des chiffres, il peut s'avérer judicieux de placer le raccourci de l'application dans le dossier de démarrage de l'utilisateur en ayant préalablement déposé le dossier de l'application sur C: ou dans un de ses autres dossiers. L'application pourra alors être active dès l'ouverture de la session de l'utilisateur.
Quand on lance l'application, une icône vient se loger dans la zone de notification. Cette icône varie selon l'état de verrouillage :
- icône (gris-gris) => Aucun verrouillage;
- icône (bleu-gris) => Majuscules verrouillées;
- icône (gris-vert) => Chiffres verrouillés;
- icône (bleu-vert) => Majuscules et chiffres verrouillés.
Attention : Il faut que l'affichage de l'application dans la zone de notification soit autorisé.
Si nécessaire, un double clic sur l'icône dans la barre de notification permet d'ouvrir l'application en fenêtre normale.
Les indications y sont visibles et actives. L'application peut alors être fermée par cette fenêtre.
L'icône de l'application est visible dans la barre des taches.
L'application étant notamment conçue pour les PC portables et les claviers qui n'offrent pas d'indicateurs de verrouillage des majuscules et des chiffres, il peut s'avérer judicieux de placer le raccourci de l'application dans le dossier de démarrage de l'utilisateur en ayant préalablement déposé le dossier de l'application sur C: ou dans un de ses autres dossiers. L'application pourra alors être active dès l'ouverture de la session de l'utilisateur.
Bonjour droggo,
Eh bien non, pas tous les claviers.
Il existe d'ailleurs d'autres applications du même type que CapNum pour pallier ce souci.
Par exemple : Keyboard Leds de l'éditeur karpolan.com.
D'ailleurs si tu te rends ici pour le télécharger : https://www.clubic.com/telecharger-f...oard-leds.html, voilà ce qui est dit :
Ou ici : https://keyboard-leds.com/
Allez un autre, CapsLock Indicator de l'éditeur Jonas Kohl : https://cli.jonaskohl.de/
Sachant qu'il y en a d'autres, pour le plaisir un petit dernier : TrayStatus de l'éditeur https://www.binaryfortress.com/.
L'intérêt, c'est peut-être aussi ou plutôt que je donne mon application avec son code source...
Le clavier dispose de ses propres voyants indicateurs, alors ?
Il existe d'ailleurs d'autres applications du même type que CapNum pour pallier ce souci.
Par exemple : Keyboard Leds de l'éditeur karpolan.com.
D'ailleurs si tu te rends ici pour le télécharger : https://www.clubic.com/telecharger-f...oard-leds.html, voilà ce qui est dit :
Certains PC portables ou de bureau n'ont pas d'indicateurs lumineux qui témoignent du statut des touches de verrouillage des majuscules, du verrouillage du pavé numérique ou encore du verrouillage du défilement.
Keyboard Leds résout se problème en affichant des indicateurs de couleur qui se place dans la zone de notification à côté de l'horloge. Chaque indicateur correspond à l'une des trois touches citées ci-dessus. Vous serez ainsi en mesure de connaitre leur statut en un clin d'œil. Vous pourrez personnaliser l'affichage de l'icône ainsi que les couleurs de chaque indicateur. Cet utilitaire entièrement gratuit sera utile pour les utilisateurs n'ayant pas d'indicateurs lumineux sur leur ordinateur.
Keyboard Leds résout se problème en affichant des indicateurs de couleur qui se place dans la zone de notification à côté de l'horloge. Chaque indicateur correspond à l'une des trois touches citées ci-dessus. Vous serez ainsi en mesure de connaitre leur statut en un clin d'œil. Vous pourrez personnaliser l'affichage de l'icône ainsi que les couleurs de chaque indicateur. Cet utilitaire entièrement gratuit sera utile pour les utilisateurs n'ayant pas d'indicateurs lumineux sur leur ordinateur.
Allez un autre, CapsLock Indicator de l'éditeur Jonas Kohl : https://cli.jonaskohl.de/
Sachant qu'il y en a d'autres, pour le plaisir un petit dernier : TrayStatus de l'éditeur https://www.binaryfortress.com/.
L'intérêt, c'est peut-être aussi ou plutôt que je donne mon application avec son code source...

Pense à améliorer tes déclarations ce qui simplifiera grandement le code. C'est dommage de modifier les couleurs jusqu'à trois fois de suite si les deux indicateurs sont activés.
Pour l'icône, travaille au niveau du bit :
Enfin utiliser un timer est souvent la facilité, j'aurais préféré voir quelque chose de plus dynamique à base de RawInput. Un exemple (Delphi) :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 | const CapitalColors :array[boolean] of TColor = [clGray, clBlue]; NumberColors :array[boolean] of TColor = [clGray, clGreen]; begin ShCa.Brush.Color := CapitalColors[Capitalocked]; ShNu.Brush.Color := NumberColors[Numberlocked]; end; |
Code : | Sélectionner tout |
1 2 | i := (GetKeyState(VK_CAPITAL) and 1) or ((GetKeyState(VK_NUMLOCK) and 1) shl 1); ImgList.GetIcon(i, TrIcon.Icon); |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | uses JwaWinUser; procedure TF_capnum.FormCreate(Sender: TObject); var RID: TRawInputDevice; begin //Messages clavier RID.usUsagePage := $01; RID.usUsage := $06; RID.dwFlags := RIDEV_INPUTSINK; RID.hwndTarget := Handle; RegisterRawInputDevices(@RID, 1, SizeOf(TRawInputDevice)); end; procedure TF_capnum.WndProc(var Message: TMessage); var Data :PRawInput; Size :dword; begin if Message.Msg = WM_INPUT then begin GetRawInputData(Message.LParam, RID_INPUT, nil, Size, SizeOf(TRawInputHeader)); GetMem(Data, Size); try if GetRawInputData(Message.LParam, RID_INPUT, Data, Size, SizeOf(TRawInputHeader)) = Size then begin if Data.keyboard.VKey in [VK_CAPITAL, VK_NUMLOCK] then VoirMajNumLockEtat; Message.Result := 0; end; finally FreeMem(Data); end; end else inherited; end; |
C'est une possibilité mais le hook de bas niveau n'est pas la meilleure solution. Il implique une commutation de processus et si le tiens se plante c'est l'ensemble du système qui se bloque.
Pour prévenir cela depuis Windows 7, s'il prend plus d'un certain temps à s'exécuter (5s sous W7, 1s sous W10 et on parle d'un temps global et non juste celui alloué à ton processus) il est purement et simplement déchargé, ton app n'en saura rien (pas de notification) et tu pourras juste constater que ça ne fonctionne plus.
RawInput reste la meilleure solution, très simple à mettre en route à l'aide de JEDI.
Pour prévenir cela depuis Windows 7, s'il prend plus d'un certain temps à s'exécuter (5s sous W7, 1s sous W10 et on parle d'un temps global et non juste celui alloué à ton processus) il est purement et simplement déchargé, ton app n'en saura rien (pas de notification) et tu pourras juste constater que ça ne fonctionne plus.
RawInput reste la meilleure solution, très simple à mettre en route à l'aide de JEDI.
Bonjour,
A quoi sert ce truc ?
Le clavier dispose de ses propres voyants indicateurs, alors ?

A quoi sert ce truc ?
Le clavier dispose de ses propres voyants indicateurs, alors ?

Bonjour Andnotor,
Je viens de publier une nouvelle version dans laquelle j'ai fait ce que tu m'as conseillé.
Par contre, pour supprimer le timer, je suis passé par un hook.
Merci pour ton aide.
Chrispi
Je viens de publier une nouvelle version dans laquelle j'ai fait ce que tu m'as conseillé.
Par contre, pour supprimer le timer, je suis passé par un hook.
Merci pour ton aide.

Chrispi
Ok, dès que j'ai un peu de temps, je vais essayer de proposer une nouvelle version qui passe par Rawinput. 

Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.