windowsdartwinapikeyboardkeystroke

How to intercept keystrokes using Dart on Windows?


I'm trying to make a transliteration program, where the user would launch it, and minimize it, then when he types, instead of typing the letters that he pressses on, other characters would pop up, in another language.

How can I stop keystrokes from reaching other programs, and how to catch them to send alternative keystrokes instead?

This has to work in other apps while typing, not only in the console, for example.

Any help would be greatly appreciated, Thanks!

I tried to search pub.dev for packages that could do this but didn't find anything, maybe someone knows a package that could do this or suggest a way to do this perhaps with the win32 API package for Dart.


Solution

  • What you're describing is called an Input Method Editor (IME).

    For a description of IMEs and a starting point for creating a new one for Windows, see: Input Method Editors (IME)