2016-07-12 2 views
0

Nous avons un contrôle WebBrowser hébergé par ATL qui est l'enfant d'une fenêtre parent dans un processus différent.Le pavé numérique ne fonctionne pas dans le contrôle WebBrowser

Certains utilisateurs ne peuvent pas utiliser le pavé numérique pour saisir des numéros dans les zones de texte du contrôle WebBrowser.

Cela a été vu sur Windows 7 et Windows 10, et le problème ne semble pas être lié à l'option d'accessibilité "Clés de la souris". Le pavé numérique fonctionne correctement dans d'autres applications (IE et Notepad) sur le même système, il échoue uniquement dans notre contrôle WebBrowser hébergé.

Nous n'avons pas été en mesure de reproduire ce problème, ni d'isoler quelque chose en commun avec les systèmes où le problème est rencontré. Quelqu'un peut-il expliquer ce qui causerait l'échec du clavier numérique uniquement dans le contrôle WebBrowser?

+2

[Est-il légal d'avoir un parent inter-processus/relation de l'enfant ou propriétaire/propriétaire de la fenêtre?] (https://blogs.msdn.microsoft.com/oldnewthing/20130412-00/?p=4683) – IInspectable

+0

Oui, c'est "légal". Difficile, mais légal. – donaddon

+0

Si le code d'hébergement ATL ou le processus parent inter-thread n'est pas sous votre contrôle, il cesse d'être légal. Cette question ne peut pas être répondue sans un [mcve]. Je sais que c'est aussi un défi en soi. – IInspectable

Répondre

0

Il s'avère que ce problème est dû à un utilitaire appelé WebRoot SecureAnywhere Identity Shield Il était difficile à trouver car le problème est au niveau du pilote, pas de l'espace utilisateur.

Ils disent qu'ils travaillent sur un correctif pour ce problème, mais voici une solution:

Exécuter ce programme:

http://download.webroot.com/IDShieldNumLock.exe

Si l'outil est exécuté sans arguments, il modifiera le registre et invite si ID Shield a maintenant le contrôle de Num-Lock (activé) ou si ID Shield n'a plus de contrôle (désactivé). Il demandera ensuite un redémarrage pour terminer le processus.

Si l'outil est exécuté avec un argument, il sera exécuté en mode silencieux (par exemple: bien que Commande de l'agent - Avancé - Télécharger et exécuter un fichier). Passez l'un des arguments suivants:

-disable désactive le contrôle ID Shield de Num-Lock (ce qui signifie qu'il est maintenant désactivé). Les arguments suivants sont également valides (/ off, -off,/disable). -enable active le contrôle ID-Shield de Num-Lock (ce qui signifie qu'il est maintenant activé). Les arguments suivants sont également valides (/ on, -on, -enable).

Si l'outil est exécuté avec deux arguments ou plus, rien ne se passera.

Remarque: La clé de Registre affectée est HKLM \ SYSTEM \ CurrentControlSet \ Services \ ikbevent "DWORD": Tapez 0x01 avec cette clé en place Le contrôle d'ID Shield de Num-Lock est désactivé et il est désactivé.

Ceci est également documenté dans le blog de notre produit où nous rencontrions le problème, mais cela arrivera à tout produit qui héberge le contrôle WebBrowser: https://www.ietab.net/blog/number-keypad-numlock-not-working-in-ie-tab/