[英]How to create an object in C# which inherits from IDispatch that can be incorporated into older programs that use ActiveX
[英]can not create activex object using C#
我正在客戶端計算機上部署C#應用程序。 該應用程序需要訪問另一個程序的代碼,因此它可以從另一個應用程序的屏幕上抓取文本。 它在開發計算機上運行良好,但在客戶端計算機上拋出錯誤“ ActiveX組件無法創建對象”,這是我從中得到錯誤的地方!
private ExtraSession objExtraSession;
private ExtraSessions objExtraSessions;
private ExtraScreen objExtraScreen;
private ExtraArea objExtraArea;
private ExtraSystem objExtraSystem;
protected void sessionInitializer()
{
try
{
objExtraSystem = (ExtraSystem) Microsoft.VisualBasic.Interaction.CreateObject("Extra.system");
if (objExtraSystem == null)
{
MessageBox.Show("Could not create system");
return;
}
objExtraSessions = objExtraSystem.Sessions;
if (objExtraSessions == null)
{
MessageBox.Show("Could not create sessions");
return;
}
if (!System.IO.File.Exists("C:\\Users\\" + userid + "\\Documents\\Attachmate\\EXTRA!\\Sessions\\SAS.edp"))
{
MessageBox.Show("File does not exist");
return;
}
objExtraSession = (ExtraSession) Microsoft.VisualBasic.Interaction.GetObject("C:\\Users\\"+ userid + "\\Documents\\Attachmate\\EXTRA!\\Sessions\\SAS.edp");
if (objExtraSession == null)
{
MessageBox.Show("Could not create session");
return;
}
if (objExtraSession.Visible == 0)
{
objExtraSession.Visible = 1;
}
objExtraScreen = objExtraSession.Screen;
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace, "Failed to initialize Attachmate sessions");
}
}
從objExtraSession =(ExtraSession)Microsoft.VisualBasic.Interaction.GetObject(“ C:\\ Users \\” + userid +“ \\ Documents \\ Attachmate \\ EXTRA!\\ Sessions \\ SAS.edp”)生成錯誤;
我錯過了一些步驟嗎? 請幫幫我。 提前致謝。
最可能的解釋是您的開發計算機已安裝ActiveX控件,而客戶端計算機未安裝。 閱讀控件的部署文檔,並執行將其部署到客戶端計算機所需的操作。
感謝您的所有答復... GetObject方法正在創建一個未注冊其activex組件的對象...我通過找到相應的* .ocx文件並在該文件上調用Regsvr32來解決了此問題...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.