簡體   English   中英

將項添加到ROT(運行對象表)

[英]Add items to the ROT( Running Objects Table)

我知道如何使用*****。GetActiveObject(ProgId),但問題是我使用這個代碼行的幾個應用程序都沒有添加到ROT,即使它們已經打開,我得到一個HRESULT錯誤。 但是,如果我單擊另一個應用程序,然后返回到原始應用程序,代碼行工作正常。

我離開這個模糊的原因,是因為這是我遇到的10多個應用程序的問題。

我沒有發布代碼的原因是因為我不相信這個問題是基於代碼的,而是我認為這個問題是由於我對此的簡單缺乏理解。

我遇到此問題的最重要的程序之一是“Microsoft Excel”。 我想做的就是能夠在特定的單元格中啟動用戶。

我已經仔細查看了如何在Excel中使用*****。GetActiveObject(ProgId),但是,似乎沒有任何合理的答案。 本程序可以用c#編寫,但是,如果它在visual basic中更簡單則不是問題

http://support.microsoft.com/kb/316126

COM服務器應在啟動后在運行對象表中注冊。 辦公室程序在失去焦點時會自行注冊。 如果程序在程序失去焦點之前嘗試附加到正在運行的實例,則可能會收到錯誤消息。 有關如何解決此問題的其他信息,請單擊下面的文章編號,以查看Microsoft知識庫中相應的文章: 316125 PRB:Visual C#.NET錯誤附加到Office應用程序的運行實例

使用代碼,您可以將焦點從Office應用程序更改為您自己的應用程序(或其他應用程序),以允許它在ROT中注冊自己。 此外,如果您的代碼正在啟動Office應用程序的可執行(.exe)文件,則在嘗試連接到正在運行的實例之前,可能需要等待Office應用程序完成加載。

在嘗試連接之前,請確保已激活另一個窗口。 如示例所示,您可以使用Form.Activate來關注自己的表單,從而導致Office應用程序失去焦點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM