问题标签 [text-services-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
213 浏览

visual-c++ - 如何在windows8中找到文本服务框架中的光标位置?

我使用记事本在此服务中实现了示例 IME,我想在文本中光标的位置插入文本。如何获取光标在 Windows 8 中的位置?

0 投票
1 回答
123 浏览

visual-c++ - 如何检索 Windows8 中 TSF 管理器使用的文档中的总字符数?

我正在研究 windows8 应用程序中的文本服务框架。在此应用程序文档管理器界面中使用的方法是 (*ppRange)-GetText(ec,TF_TF_IGNOREEND,wStr,WCHAR_MAX, &fetched);此方法仅返回组合模式文本。如何检索文档(记事本)中的总字符?

0 投票
1 回答
476 浏览

visual-c++ - 如何在文本服务框架 windows8 应用程序中使用 GetSelection 获取光标位置?

大家好。我正在 DoEditSession 方法中实现此代码。当我尝试获得选择时,我总是得到 1 的值uFetched。但是光标位置不来了?

我正在使用 Tsf 接口为 Windows RT 开发文本服务。我已经集成了库,这些库根据我们在候选窗口中输入的字母来建议单词。现在我需要获取文档中光标位置之前和之后的字母。所以在这里我使用了 GetSelection 来检索选定的文本。问题是我无法检索文档(记事本)中的插入符号位置。有什么特定的方法可以让我在插入符号/光标位置周围获取字母/文本吗?

0 投票
1 回答
757 浏览

text-services-framework - 如何知道输入是 ime 还是 tsf?

我用的是win7 64bit,本地语言是中文。

有些输入使用ime,有些输入使用tsf。

我有时想使用 LoadKeyboardLayout() 来激活特殊的键盘布局,但是当调用 GetKeyboardLayoutName() 时,tsf 输入和默认 ime 返回相同的键盘布局“0x00000804”。</p>

所以我不能使用 LoadKeyboardLayout() 激活 tsf 输入,我知道如何通过 ITfInputProcessorProfiles 接口激活 tsf 输入。

但是如何获取当前输入是 ime 还是 tsf?

谢谢。

0 投票
1 回答
408 浏览

windows - Microsoft TSF - 像 IUIAutomation::GetFocusedElement 一样使用 ITfThreadMgr::GetFocus

当我尝试在文本服务上下文之外附加到 Microsoft 文本服务框架 (TSF) 时,我无法检索与活动应用程序文本交互所需的信息。

我在 Windows 7 上使用写字板作为我的目标测试应用程序,并确保在 TSF 方法执行时将注意力集中在写字板上。

该程序尽可能尝试获取当前关注的ITfDocumentMgr ( ITfThreadMgr :: GetFocus ),但返回的文档管理器为 NULL。根据 API 文档,这意味着当前没有重点关注 ITfDocumentMgr,但是:

如果我采用完全不同的方法:注册自定义文本服务并通过ITfTextInputProcessor::Activate接收 ITfThreadMgr 引用,我可以通过 ITfThreadMgr::GetFocus 为写字板检索聚焦的 ITfDocumentMgr。但是由于各种原因,我不想安装自定义的 inproc 文本服务。

是否有任何方法可以跨进程边界连接到 TSF API,就像AutomationElement.FocusedElement,IUIAutomation::GetFocusedElement或一样AccessibleObjectFromWindow

0 投票
1 回答
1058 浏览

callback - 应用程序未通过文本服务框架 DLL 检测输入语言更改

好的,我已经有一段时间了......

我正在尝试跟踪用户何时从语言栏更改输入语言。

我有一个文本服务 DLL - 从 MSDN 和 WinSDK 示例建模 - 注册良好,我可以使用接口 ITfActiveLanguageProfileNotifySink 和 ITfLanguageProfileNotifySink 并很好地查看这些事件。

我也终于意识到,当我更改语言时,这些事件发生在当前具有焦点的应用程序/进程中。

我需要做的是简单地让这些事件能够回调到我自己的应用程序,当它有焦点时。我知道我错过了一些东西。

任何帮助在这里表示赞赏。

谢谢。

0 投票
1 回答
360 浏览

chinese-locale - ITfLanguageProfileNotifySink 用于中文子语言更改

简单地说:为什么在将输入语言(从语言栏)更改为中文(繁体)之一时,ITfLanguageProfileNotifySink 接口接收器似乎没有调用 OnLanguageChange 方法,例如昌捷或新拼音?这是在Windows 7上。我从说英语到中文,但是当我选择不同的中文(子)语言时,没有通知?!

0 投票
2 回答
1861 浏览

com - 文本服务框架应用程序

我可以找到大量关于如何制作文本服务框架服务的示例,但找不到关于如何制作实际使用它的应用程序的示例。当我尝试在 C# 中执行此操作时,我得到了足够的结果,甚至可以使用 C++ 示例,如果这是我所能得到的!

0 投票
1 回答
481 浏览

c++ - 失去焦点时应用程序未检测到语言变化

我已经实现了继承 ITfLanguageProfileNotifySink 接口的类。它正在工作,我可以在语言更改时收到事件,但只有当我的应用程序专注时。

当我的应用程序没有集中注意力时,我应该怎么做才能检测到应用程序中的语言变化?

0 投票
0 回答
306 浏览

delphi - Delphi + Windows 文本服务框架

有什么方法可以使用/集成 Delphi 应用程序与文本服务框架?

我特别在想 InputScope.h 的东西(比如 ITfInputScope / SetInputScopes)

默认情况下,VCL 框架仅与 ITextInputPanel (PenInputPanel.h) 挂钩...