zoukankan      html  css  js  c++  java
  • 用代码初始化AE控件许可

    当AE二次开发与其他平台一起使用的时候,有时候会不方便加LicenseControl控件,需要用代码初始化许可:

    在构造函数中初始化许可:

     1 public Form1()
     2 {
     3 
     4            InitializeComponent();
     5            ESRI.ArcGIS.esriSystem.IAoInitialize AoIni = new AoInitializeClass();
     6            bool Successful;//返回是否初始化成功
     7            esriLicenseProductCode production =  esriLicenseProductCode.esriLicenseProductCodeArcInfo;//这里选择的是ArcInfo
     8            esriLicenseStatus status = AoIni.IsProductCodeAvailable(production);
     9            if (status == esriLicenseStatus.esriLicenseAvailable)
    10           {
    11                  status = AoIni.Initialize(production);
    12                  if (status == esriLicenseStatus.esriLicenseAlreadyInitialized || status == esriLicenseStatus.esriLicenseCheckedOut)
    13                  {
    14                            //SpatialAnalyst
    15                            esriLicenseExtensionCode extension1 = esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst;
    16                            esriLicenseStatus status1 = AoIni.IsExtensionCodeAvailable(production, extension1);
    17                            if (status1 == esriLicenseStatus.esriLicenseAvailable)
    18                            {
    19                                    status1 = AoIni.CheckOutExtension(extension1);
    20                            }
    21 
    22                             //DataInteroperability
    23                             esriLicenseExtensionCode extension2 = esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability;
    24                             esriLicenseStatus status2 = AoIni.IsExtensionCodeAvailable(production, extension2);
    25                             if (status2 == esriLicenseStatus.esriLicenseAvailable)
    26                             {
    27                                    status2 = AoIni.CheckOutExtension(extension2);
    28                             }
    29 
    30                             //if (status1 == esriLicenseStatus.esriLicenseCheckedOut && status2 == esriLicenseStatus.esriLicenseCheckedOut)
    31                             if (status2 == esriLicenseStatus.esriLicenseCheckedOut)
    32                            {
    33                                   Successful = true;
    34                            } 
    35                   }
    36          } 
    37 }

    以上代码相当于添加LicenseControl控件,并设置如下属性:

    后记:用代码初始化许可的话,记得在程序关闭时添加如下代码,否则程序进程在程序关闭后还存在。

    public static void ShutDown()
    {
             ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown();
             AoInit.Shutdown();  //AoInit为初始化许可时定义的ESRI.ArcGIS.esriSystem.IAoInitialize AoIni 
    }

  • 相关阅读:
    小米路由通过SSH添加静态路由表之后无法跳转的问题
    极路由通过SSH添加静态路由表之后无法跳转的问题
    Linux服务器压测/拷机软件收集
    RabbitMQ整合Spring Booot【消费者补偿幂等问题】
    找不到共享解决办法
    如何一步步设计一款微服务的补偿方案
    Spring Cloud 支付宝支付的流程
    把同事的重复代码清理干净,老板却让我做了回滚?
    [LeetCode] 565. Array Nesting 数组嵌套
    [LeetCode] Out of Boundary Paths 出界的路径
  • 原文地址:https://www.cnblogs.com/fatherZyl/p/3277812.html
Copyright © 2011-2022 走看看