ArcEngine 10.0以上 许可检查及初始化



        该流程参考arcengine帮助文档介绍

/// <summary>
        /// 检查ArcGIS许可并初始化(强制检查,有不通过项时直接退出)
        /// Initialization of an application with a license must be performed in the following order:
        ///1.Check that the product license is available with the IsProductCodeAvailable method.
        ///2.Check that extension licenses are available (if required) with the IsExtensionCodeAvailable method.
        ///3.Initialize the application with the product license.
        ///4.As required, check out and in the extension(s) by calling the CheckOutExtension and CheckInExtension methods.
        ///5.Shutdown the application.
        /// </summary>
        private void InitializeEngineLicense()
        { 
                ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
                AoInitialize aoi = new AoInitializeClass();
                string LiscenseMessage = "";
                esriLicenseStatus LiscenseStatus=aoi.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
                //验证许可的可用性
                if (LiscenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    LiscenseStatus = aoi.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
                }
                else
                {
                    LiscenseMessage += "\"ArcEngine许可\"不可用\n";
                } 
                //扩展许可 
                //数据互操作
                LiscenseStatus = aoi.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability);
                if (LiscenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    LiscenseStatus = aoi.CheckInExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability);
                }
                else
                {
                    LiscenseMessage += "\"数据互操作许可\"不可用\n";
                }
                //空间分析
                LiscenseStatus = aoi.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
                if (LiscenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    LiscenseStatus = aoi.CheckInExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
                }
                else
                {
                    LiscenseMessage += "\"空间分析许可\"不可用\n";
                }
                //动态跟踪
                LiscenseStatus = aoi.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, esriLicenseExtensionCode.esriLicenseExtensionCodeTracking);
                if (LiscenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    LiscenseStatus = aoi.CheckInExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeTracking);
                }
                else
                {
                    LiscenseMessage += "\"动态跟踪许可\"不可用\n";
                }

                //图表
                LiscenseStatus = aoi.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, esriLicenseExtensionCode.esriLicenseExtensionCodeSchematics);
                if (LiscenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    LiscenseStatus = aoi.CheckInExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSchematics);
                }
                else
                {
                    LiscenseMessage += "\"图表许可\"不可用\n";
                }
              
                if (!string.IsNullOrEmpty(LiscenseMessage))
                {
                    MessageBox.Show("ArcGIS许可验证不通过\n" + LiscenseMessage + "系统将退出", "严重警告", MessageBoxButton.OK, MessageBoxImage.Warning);
                    App.Current.Shutdown();
               }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值