我正在客户端计算机上部署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”)生成的;
我错过了一些步骤。请帮帮我。提前谢谢。
答案 0 :(得分:4)
最可能的解释是您的开发计算机已安装ActiveX控件,但客户端计算机没有。阅读控件的部署文档,并执行部署到客户端计算机所需的内容。
答案 1 :(得分:0)
感谢您的所有回复...方法GetObject正在创建一个其activex组件未注册的对象...我通过查找相应的* .ocx文件并在文件上调用Regsvr32解决了这个问题...