Question

Pour une question de base, je suis surpris, je ne pouvais pas trouver quoi que ce soit par la recherche...

De toute façon, j'ai fait un malédictions application en Python qui contribue à la résolution des énigmes d'un certain DSiWare jeu.Avec elle, vous pouvez prendre un casse-tête et inspecter les composants individuellement.Les touches qweasdzx sont utilisées pour peindre des carreaux (les touches sont disposées en une sorte de palette).En appuyant sur une de ces touches tout en maintenant la touche Maj enfoncée faits saillants de tuiles avec cette couleur.Je ne pouvais pas demander plus naturelle, mode de contrôle.

Donc, c'est une honte que, une fois encore, le Décalage est de me donner des questions (la dernière fois j'ai eu des problèmes avec la Maj, j'ai gagné un Tumbleweed badge).Bien que cette fois, le problème est plus ou moins le Verrouillage des Majuscules, qui a complètement vis de mon programme en inversant les fonctions.

Comment puis-je détecter l'état de Verrouillage des Majuscules en Python, avec des malédictions?

EDIT:Si vous allez vous suggérons d'utiliser un module séparé, je devrais probablement vous rappeler que les malédictions - et donc mon programme est en UNIX territoire.

Était-ce utile?

La solution

J'ai trouvé une solution sur mon propre:

Depuis les malédictions est complètement ignorant de la touche Caps Lock réglage en fonction de ΤΖΩΤΖΙΟΥ, j'ai essayé une autre solution.Plus précisément, j'ai regardé comment vérifier le Verrouillage des Majuscules dans un script BASH.Ce que j'ai trouvé ceci:

Linux uniquement.Nécessite Le Système X Window.

$ xset q | grep LED
>  auto repeat:  on    key click percent:  0    LED mask:  00000000

Le dernier 0 en sortie (la 66e caractère dans la chaîne) est la touche Caps Lock de pavillon.1 si elle est activée, 0 si il est désactivé.

Python peut exécuter le système UNIX, les commandes Linux uniquement les commandes le module.les commandes ne semble pas interférer avec les malédictions.

>>> import commands
>>> # Caps Lock is off.
>>> commands.getoutput("xset q | grep LED")[65]
'0'
>>> # Setting Caps Lock on now.
>>> commands.getoutput("xset q | grep LED")[65]
'1'

Cela fonctionne très bien pour moi;c'est une utilisation personnelle script, et c'est pas comme si mon programme n'était pas déjà Linux-exclusif.Mais j'espère que quelqu'un a une autre, plus compatible Windows solution.

Je suis prêt à accepter cette auto-réponse pour l'instant, mais si quelqu'un d'autre peut trouver une meilleure solution de travail, je voudrais le voir.

Autres conseils

La réponse courte:vous ne pouvez pas.

Apporter une réponse plus longue:

malédictions a été créé comme un terminfo bibliothèque pour faciliter la création de personnage basé sur l'Isu indépendant du terminal utilisé (for terminal in 'vt220', 'wyse100', …).

Ces terminaux sont connectés via une ligne série et de la communication-et-vient de l'hôte ont été par le biais de texte brut (entrée par l'utilisateur ou de sortie par l'hôte) ou des séquences spéciales ("escape" séquences;entrée par l'utilisateur si les touches pressées, à l'instar de ou Prev, ou de sortie par l'hôte, en cas d'opérations spéciales comme le positionnement du curseur ou de l'écran de compensation a été demandé).

Je n'ai aucune connaissance de tout terminal passif de l'envoi d'une séquence particulière chaque fois que la touche de Verrouillage des Majuscules est déprimé, ou à l'accueil de l'interrogation de l'état verr maj;verrouillage des capitales a été une partie du travail de la borne, et l'hôte n'a pas eu besoin d'aucune connaissance.Ceci est similaire à la raison pour laquelle vous ne pouvez pas avoir des malédictions de la loi sur le programme lors de la clé de Contrôle est enfoncée sur son propre.

Tout à propos de malédictions se rapporte à terminfo capacités;il n'y a pas toute la capacité pour ce que vous demandez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top