問題タブ [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.
visual-c++ - Windows8でテキストサービスフレームワークのカーソル位置を見つける方法は?
このサービスでメモ帳を使用してサンプル IME を実装しており、テキスト内のカーソルの位置にテキストを挿入したいと考えています。Windows 8でカーソルの位置を取得するにはどうすればよいですか?
visual-c++ - Windows8でTSFマネージャーが使用するドキュメントの合計文字数を取得する方法は?
私はwindows8アプリケーションでテキストサービスフレームワークに取り組んでいます。このアプリケーションでは、メソッドを使用するドキュメントマネージャーインターフェイスは(* ppRange)-GetText(ec、TF_TF_IGNOREEND、wStr、WCHAR_MAX、&fetched);このメソッドは構成モードのテキストのみを返します。ドキュメント(メモ帳)の合計文字数を取得する方法は?
visual-c++ - テキストサービスフレームワークwindows8アプリケーションでGetSelectionを使用してカーソル位置を取得する方法は?
こんにちは、みんな。このコードを DoEditSession メソッドに実装しています。選択範囲を取得しようとすると、常に の値が 1 になりuFetched
ます。でもカーソル位置が来ない?
Tsf インターフェイスを使用して Windows RT 用のテキスト サービスを開発しています。候補ウィンドウに入力した文字に基づいて単語を提案するライブラリを統合しました。ここで、ドキュメントのカーソル位置の前後の文字を取得する必要があります。ここでは、選択したテキストを取得するために GetSelection を使用しました。問題は、ドキュメント (メモ帳) のキャレット位置を取得できないことです。キャレット/カーソル位置の周りに文字/テキストを取得できる特定の方法はありますか?
text-services-framework - 入力がimeまたはtsfであることを知る方法は?
私はwin7 64ビットを使用しています。ローカル言語は中国語です。
一部の入力は ime を使用し、一部の入力は tsf を使用します。
LoadKeyboardLayout() を使用して特別なキーボード レイアウトをアクティブにしたい場合もありますが、GetKeyboardLayoutName() を呼び出すと、tsf 入力とデフォルトの ime は同じキーボード レイアウト "0x00000804" を返します。</p>
そのため、LoadKeyboardLayout() を使用して tsf 入力をアクティブにすることはできません。ITfInputProcessorProfiles インターフェイスを介して tsf 入力をアクティブにする方法を知っています。
しかし、現在の入力を取得する方法はimeまたはtsfですか?
ありがとう。
windows - Microsoft TSF - IUIAutomation::GetFocusedElement のような ITfThreadMgr::GetFocus の使用
テキスト サービスのコンテキスト外で Microsoft Text Services Framework (TSF) に接続しようとすると、アクティブなアプリケーションのテキストと対話するために必要な情報を取得できません。
私はターゲット テスト アプリケーションとして Windows 7 のワードパッドを使用しています。TSF メソッドが実行されるまでに、ワードパッドにフォーカスするようにしています。
プログラムは、現在フォーカスされているITfDocumentMgr ( ITfThreadMgr :: GetFocus ) を取得しようとしますが、返されるドキュメント マネージャーは NULL です。ただし、API ドキュメントによると、これは現在注目されている ITfDocumentMgr がないことを意味します。
カスタム テキスト サービスを登録し、ITfTextInputProcessor::Activateを介して ITfThreadMgr 参照を受け取るというまったく別のアプローチを取ると、 ITfThreadMgr::GetFocus を介してワードパッド用のフォーカスされた ITfDocumentMgr を取得できます。しかし、さまざまな理由から、カスタムのインプロセス テキスト サービスをインストールしたくありません。
AutomationElement.FocusedElement
または で可能なように、プロセス境界を越えて TSF API にフックする方法はありますIUIAutomation::GetFocusedElement
かAccessibleObjectFromWindow
?
callback - アプリケーションがテキスト サービス フレームワーク DLL を介して入力言語の変更を検出しない
わかりました、私はしばらくこれにいました...
ユーザーが言語バーから入力言語をいつ変更したかを追跡しようとしています。
MSDN と WinSDK のサンプルからモデル化されたテキスト サービス DLL があり、正常に登録され、インターフェイス ITfActiveLanguageProfileNotifySink と ITfLanguageProfileNotifySink を使用して、これらのイベントを正常に表示できます。
また、言語を変更すると、現在フォーカスのあるアプリケーション/プロセスに対してこれらのイベントが発生することにも最終的に気付きました。
私がする必要があるのは、フォーカスがあるときに、これらのイベントが自分のアプリケーションにコールバックできるようにすることだけです。私は何かが欠けていることを知っています。
ここで何か助けていただければ幸いです。
ありがとう。
chinese-locale - 中国語のサブ言語の変更のための ITfLanguageProfileNotifySink
簡単に言えば、入力言語を (Language Bar から) ChangJie や New Phonetic などの中国語 (繁体字) に変更するときに、ITfLanguageProfileNotifySink インターフェイス シンクが OnLanguageChange メソッドを呼び出さないのはなぜですか? これは Windows 7 です。英語から中国語に切り替えますが、別の中国語 (サブ) 言語を選択しても通知がありません。
c++ - フォーカスを失ったときにアプリケーションが言語の変更を検出しない
ITfLanguageProfileNotifySink インターフェイスを継承するクラスを実装しました。言語が変更されたときにイベントを取得できますが、それはアプリがフォーカスされている場合のみです。
フォーカスされていないときにアプリの言語の変更を検出するにはどうすればよいですか?
delphi - Delphi + Windows テキスト サービス フレームワーク
Delphi アプリケーションを使用したり、テキスト サービス フレームワークと統合したりする方法はありますか?
私は特にInputScope.hのもの(ITfInputScope / SetInputScopesなど)について考えています
VCL フレームワークは、デフォルトで ITextInputPanel (PenInputPanel.h) でのみフックされます...