我正在开发一个C#项目,该项目需要获取键盘插入符号/光标位置。
我使用的方法是通过调用Win32 Apis。通过使用此博客:https://www.codeproject.com/Articles/34520/Getting-Caret-Position-Inside-Any-Application
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getguithreadinfo
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/ns-winuser-guithreadinfo
NativeMethods.GUITHREADINFO gUITHREADINFO = new NativeMethods.GUITHREADINFO();
gUITHREADINFO.cbSize = (uint)Marshal.SizeOf(gUITHREADINFO);
if (!NativeMethods.GetGUIThreadInfo(0, out gUITHREADINFO))
{
return new int[] { 0, 0 };
}
[DllImport("user32.dll")]
public static extern bool GetGUIThreadInfo(uint tId, out GUITHREADINFO threadInfo);
但是这种方法有局限性。它不能在基于Chrome和基于Chrome的应用程序中运行,也不能在基于Java的应用程序中运行。
我注意到某些非英语输入法具有跟踪键盘输入光标/插入符号的功能。他们是如何工作的?或者如何在C#中使用Chrome获得键盘插入符号?