【问题标题】:can not create activex object using C#无法使用 C# 创建 activex 对象
【发布时间】:2013-12-17 11:41:14
【问题描述】:

我正在客户端机器上部署一个 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"); 产生的;

我是否错过了一些步骤。请帮帮我。提前致谢。

【问题讨论】:

  • 请向我们展示您的代码,否则我们如何帮助您?
  • 另外,使用正确的标签。
  • @Bob 你在用 Vista
  • 我在开发计算机和客户端计算机上都使用 Windows 7

标签: c# activex


【解决方案1】:

最可能的解释是您的开发机器安装了 ActiveX 控件,但客户端机器没有。阅读控件的部署文档并执行部署到客户端计算机所需的操作。

【讨论】:

    【解决方案2】:

    感谢您的所有回复... GetObject 方法正在创建一个未注册 activex 组件的对象...我通过找到相应的 *.ocx 文件并在该文件上调用 Regsvr32 解决了问题...

    【讨论】:

    • 你能更详细地解释你是如何解决你的问题的吗?
    猜你喜欢
    • 2011-08-15
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2018-01-22
    相关资源
    最近更新 更多