2010-06-09 4 views
1

Juste la fonctionnalité d'intercepter l'entrée du clavier, la transformation et le renvoyer est required.eg si l'utilisateur appuie sur ma Wold comme pour envoyer etc.Comment faire une application comme application de bureau translittération Google C#

Pour faire une application qui accepte l'entrée du clavier le modifier et l'envoyer à la fenêtre active (peut être une application comme Word, Excel, écrans de Windows Bloc-notes) etc La fonctionnalité est comme l'application de translittération de Google pour Windows. Je voudrais le faire en C#. Je pense que cela implique d'accrocher dans le clavier et d'envoyer des clés (comme sendkey dans vb) à la fenêtre en cours. Le fonctionnement est comme Google transliteration. Cependant, la logique de transformation est assez différente.

Répondre

0

Je ne suis pas sûr de savoir exactement quelle est la question, alors il se peut qu'elle soit fermée pour être trop vague. Cependant, il semble que vous devrez tamponner toutes les frappes, envoyer des mots ou des phrases à un service de façon asynchrone pour être translittéré, puis les repasser dans le tampon du clavier avec quelque chose comme sendkeys comme vous l'avez mentionné. Le problème est que si votre application a le focus, nous ne savons pas où l'utilisateur veut que le texte translittéré apparaisse, et si l'application telle que Word a le focus, elle recevra à la fois les vraies frappes et le texte translittéré, ce qui alors être mélangé ensemble (un désordre). Il semble préférable de simplement translittérer des morceaux de texte plutôt que d'essayer d'interférer avec le tampon du clavier - en outre, le retour arrière, l'annulation, etc. sera presque impossible à honorer.

+0

C'est exactement le problème, les gars de Google l'ont fait très bien, donc je suis confiant que c'est possible mais est-il possible d'utiliser C# est toujours un triomphe à conquérir. – Thunder

+0

Eh bien, si vous construisez votre propre traitement de texte, la translittération devrait être relativement simple, à condition de pouvoir utiliser un service existant tel que Google: http://code.google.com/apis/ajaxlanguage/ –

+0

Je ne veux pas construire un logiciel de translittération, je veux juste la fonctionnalité d'intercepter l'entrée du clavier, de la transformer et de la renvoyer à nouveau.eg si l'utilisateur appuie sur un bouton comme envoyer e etc. Ceci est nécessaire pour faciliter le processus de dactylographie dans les langues asiatiques comme le népalais, Newari. – Thunder

0

Vous devez écrire une DLL qui utilise l'infrastructure Windows Text Service ou l'infrastructure IME héritée. Cette DLL sera chargée dans la barre de langauge et quand vous l'activez; votre code, qui a implémenté un ensemble d'APIS requis par le framework TSF ou IME, obtiendra l'évènement key, vous pourrez ensuite le passer à votre code qui le traduira et vous passera une chaîne.Une autre API implémentée peut alors entrer à l'éditeur de texte actuel de l'application Windows.

Questions connexes