Comment détecter cliquant sur (touche entrée) à l'échelle mondiale au lieu de la souris en cliquant?
Je veux faire une application qui se manifeste lorsque l'utilisateur touche l'écran de son. Il ne devrait pas travailler pour cliquez. J'ai regardé pour la touche hanlders dans Windows 7/8. Mais j'ai vu qu'à chaque contact de fenêtre doivent être enregistrés avec la fonction registertouchwindow
TL;DR
Est-il un moyen d'obtenir les points de contact à la position à l'extérieur de ma fenêtre (dans le monde)?
Vous devez vous connecter pour publier un commentaire.
Fonction registertouchwindow n'est pas nécessaire pour Win 8 apps plus.
Autant que je l'ai connu, il y a plusieurs façons d'atteindre votre but avec certaines limitations.
Cet article ici fonctionne sur Win 7 & 8. Mais le vendor ID et l'ID du produit de l'écran tactile est nécessaire. Il est possible que votre application ne fonctionne pas correctement avec certains tactile de l'appareil.
Utilisation RegisterPointerInputTarget sur Win 8. De mon débogage, le tactile sous windows 8 mécanisme a ses caractéristiques propres. Entre un contact et d'une touche, tous les événements tactiles sera envoyé à la fenêtre qui reçoit le premier événement de touche, peu importe la fenêtre est réduite ou couverts par une autre fenêtre ou un ensemble WS_EX_TRANSPARENT attribut dans sa dernière période. Les événements tactiles entre l'un en appuyant et en relâchant ne peuvent être partagées à l'autre de la fenêtre, si la première est détruite. L'utilisation de cette API, tous les événements tactiles seront envoyées au siège social de la fenêtre. Autres windows ne peut pas recevoir les événements tactiles plus, jusqu'à ce UnregisterPointerInputTarget est appelé par la fenêtre enregistrée, ou la saisie tactile est réinjectée dans le système à l'aide de InjectTouchInput. "Entrée injecté par le régime enregistré d'entrée cible ne seront pas interceptées." Veuillez noter que l'INTERFACE utilisateur privilège d'Accès est nécessaire pour l'utilisation de cette API. Un exemple peut être trouvé dans ici.
Windows crochet. Pour l'application desktop sur windows 7/8, les événements tactiles peuvent être facilement accroché par l'aide de SetWindowsHookEx avec WH_CALLWNDPROC ou WH_GETMESSAGE. Pour l'application de métro sur Win 8, seul le premier événement de pointeur peut être détecté dans la boucle de message de la fenêtre. Bien qu'un événement de pointeur peut être produite soit par un clic ou un robinet, GetPointerType peux vous dire si c'est un pointeur tactile ou un pointeur de souris. Les échantillons pour l'aide de crochets peut être trouvé à ici.
Un extrait de code pour la manipulation des événements de pointeur: