2024 年 PHP 日本研討會

com_get_active_object

(PHP 5, PHP 7, PHP 8)

com_get_active_object傳回已執行中 COM 物件實例的控制代碼

說明

com_get_active_object(字串 $prog_id, ?整數 $codepage = null): variant

com_get_active_object() 與建立新的 com 物件實例類似,但只有在物件已在執行中時,它才會將物件返回到您的腳本。OLE 應用程式使用稱為「執行物件表格 (Running Object Table)」的功能,允許知名應用程式只啟動一次;此函式公開 COM 函式庫函式 GetActiveObject() 以取得正在執行之實例的控制代碼。

參數

prog_id

prog_id 必須是您要存取的物件的 ProgID 或 CLSID(例如 Word.Application)。

codepage

其作用方式與 com 類別完全相同。

回傳值

如果請求的物件正在執行,它將會像任何其他 COM 物件一樣返回到您的腳本。

錯誤/例外

此函式可能失敗的原因有很多,最常見的原因是物件尚未執行。在這種情況下,例外錯誤碼將會是 MK_E_UNAVAILABLE;您可以使用例外物件的 getCode 方法來檢查例外錯誤碼。

更新日誌

版本 說明
8.0.0 codepage 現在可以為 null。

注意事項

警告

在網頁伺服器環境中使用 com_get_active_object() 並非總是明智之舉。大多數 COM/OLE 應用程式並非設計用於同時處理多個用戶端,即使是(或尤其是!)Microsoft Office。您應該閱讀 » 伺服器端 Office 自動化的注意事項 以取得有關一般相關問題的更多資訊。

新增筆記

使用者貢獻的筆記 1 則筆記

-1
gerrit at timingteam dot nl
15 年前
請注意以下行為 (Apache 2.2.8, W2K, WXP)

如果 Apache 以服務方式執行,即使確定執行物件表格包含所需物件的參考,com_get_active_object() 也總是返回 MK_E_UNAVAILABLE。

如果 Apache 在主控台中執行,com_get_active_object() 會按要求返回物件控制代碼。

這顯然是 Windows 的問題。
To Top