[英]getScriptProvider and createScriptProvider in Libre/Open/Collabra Office
If location="document" Then
sp = ThisComponent.getScriptProvider()
Else
mspf = CreateUNOService("com.sun.star.script.provider.MasterScriptProviderFactory")
sp = mspf.createScriptProvider("")
End If
這是文檔中的一個相當標准的示例:這里有一個示例: https ://help.libreoffice.org/7.1/en-US/text/sbasic/guide/basic_2_python.html,它已經存在了一段時間:那里是同一個地方的 /6.4/ 例子。
知道為什么用 getScriptProvider 和 createScriptProvider 那樣寫嗎? 該構造表明在某些情況下您必須創建腳本提供程序,因為您無法獲取現有腳本提供程序。 但在我的檢查中,getScriptProvider 也適用於“用戶”和“共享”(它們只是用於查找腳本的不同位置)。
這對我來說並不重要,因為我只使用 location="document",但是有沒有人記錄過 getScriptProvider 失敗的情況?
再看看你問的那一行。
sp = .getScriptProvider()
在某些情況下,您可能沒有要使用的組件,例如,如果當前文檔已經(或將要)關閉。 因此,改為從 MasterScriptProviderFactory 獲取腳本提供程序。
腳本提供者的來源決定了哪些代碼可以運行。 如果代碼在不同的文檔中,則從該文檔中獲取腳本提供程序,尤其是當函數在不同的文檔中具有相同的名稱時。
user和share的一個好處是無論腳本提供者來自哪里,它們都可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.