訓練
模組
Text manipulation in Power Automate for desktop - Training
Learn how to manipulate text and datetime values in Power Automate for desktop.
ACP 是文字資料流程中字元或字元的位置,以文字資料流程開頭的字元數表示。 因為 ACP 模型是以零起始,所以文字資料流程中的第一個字元具有零的 ACP。 例如:
Text Stream H | e | l | l | o | | W | o | r | l | d
ACP 0 1 2 3 4 5 6 7 8 9 10
文字存放區會實作支援 ITextStoreACP 介面的物件,這可讓文字資料流程以 ACP 表示。 ITextStoreACP介面方法會使用文字資料流程的 ACP 範圍來修改文字。
管理員會以原生方式使用以 ACP 為基礎的方法來操作文字。 不過,錨點型方法適用于支援錨點的Microsoft Active Accessibility用戶端,讓管理員使用ITextStoreAnchor 和 ITextStoreAnchorSink方法來包裝ITextStoreACP和ITextStoreACPSink方法。
文字存放區會使用 檔鎖定控制文字資料流程的存取。 若要讀取或修改文字存放區,管理員必須先安裝建議接收,以支援 ITextStoreACPSink 介面,方法是呼叫 ITextStoreACP::AdviseSink 方法,並將指標傳遞至建議接收。 建議接收可讓管理員取得文字存放區上的檔鎖定,並在文字存放區被管理員以外的專案修改時收到通知,例如透過應用程式的使用者輸入。 本主題稍後會討論建議接收。
應用程式會完成下列步驟來初始化文字存放區:
使用執行緒管理員物件的指標呼叫CoCreateInstance函式,根據ITfThreadMgr介面建立執行緒管理員物件。 以下是實作執行緒管理員物件的程式碼範例。
hr = CoCreateInstance (CLSID_TF_ThreadMgr, NULL, CLSCTX_INPROC_SERVER,
IID_ITfThreadMgr, (void**)&pThreadMgr);
呼叫 ITfThreadMgr::Activate 方法以啟動執行緒管理員物件。 這個方法提供用來建立內容物件的 用戶端識別碼 指標。 執行緒管理員是用來實作檔管理員物件。
使用檔管理員物件的指標呼叫ITfThreadMgr::CreateDocumentMgr方法,根據ITfDocumentMgr介面建立檔管理員物件。 檔管理員物件是用來實作文字存放區的內容物件。
呼叫 ITfDocumentMgr::CreateCoNtext 方法,並使用文字存放區物件的指標,以及啟動執行緒管理員的用戶端識別碼指標,從檔管理員建立內容物件。 以下是建立內容物件的範例:
hr = pDocumentMgr->CreateContext(m_ClientID, 0, (ITextStoreACP*)this,
&pContext, pEditCookie);
使用 ITfDocumentMgr::P ush 方法將內容物件推送至堆疊。 以下是將內容物件推送至堆疊的範例:
hr = pDocumentMgr->Push(pContext);
ITfDocumentMgr::P ush方法會使用建議接收介面的指標呼叫ITextStoreACP::AdviseSink,以安裝新的建議接收,或修改現有的建議接收。 當文字存放區被管理員以外的專案修改時,建議接收會收到通知,例如對應用程式的使用者輸入。 當輸入法取得焦點時,應用程式必須呼叫 ITfThreadMgrEventSink::OnSetFocus 方法。 呼叫適當的 ITextStoreACPSink 介面方法,會提供執行緒管理員的其他通知。
不過,應用程式不應該呼叫 ITextStoreACPSink 介面方法,以回應 ITextStoreACP 介面方法。 當文字存放區被管理員以外的專案修改時,應用程式應該只會呼叫 ITextStoreACPSink 介面方法。
文字存放區的內容可以使用稱為 組合的暫存輸入狀態來修改。
訓練
模組
Text manipulation in Power Automate for desktop - Training
Learn how to manipulate text and datetime values in Power Automate for desktop.