C# arcengine 初始化lic代码

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.esriSystem;

namespace 切割
{
    [Guid("2a8da3be-c6cb-4fa2-8573-0c2d5006a3e6")]
    [ClassInterface(ClassInterfaceType.None)]
    [ProgId("切割.LicenseInitializer")]

    public class LicenseInitializer
    {
        private IAoInitialize m_AoInitialize = new AoInitializeClass();

        public bool InitializeApplication()
        {
            bool bInitialized = true;

            if (m_AoInitialize == null)
            {
                System.Windows.Forms.MessageBox.Show("Unable to initialize. This application cannot run!");
                bInitialized = false;
            }

            //初始化应用程序
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;

            licenseStatus = CheckOutLicenses(esriLicenseProductCode.esriLicenseProductCodeEngine);
            if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
            {
                licenseStatus = CheckOutLicenses(esriLicenseProductCode.esriLicenseProductCodeArcView);
                if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                {
                    licenseStatus = CheckOutLicenses(esriLicenseProductCode.esriLicenseProductCodeArcEditor);
                    if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        licenseStatus = CheckOutLicenses(esriLicenseProductCode.esriLicenseProductCodeArcInfo);
                        if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                        {
                            System.Windows.Forms.MessageBox.Show(LicenseMessage(licenseStatus));
                            bInitialized = false;
                        }
                    }
                }
            }

            return bInitialized;
        }

        public void ShutdownApplication()
        {
            if (m_AoInitialize == null) return;

            //关闭 AoInitilaize对象
            m_AoInitialize.Shutdown();
            m_AoInitialize = null;
        }

        private esriLicenseStatus CheckOutLicenses(esriLicenseProductCode productCode)
        {
            esriLicenseStatus licenseStatus;

            //是否产品是可能的
            licenseStatus = m_AoInitialize.IsProductCodeAvailable(productCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {

                //用相应的许可文件进行初始化
                licenseStatus = m_AoInitialize.Initialize(productCode);
            }
            return licenseStatus;
        }

        private string LicenseMessage(esriLicenseStatus licenseStatus)
        {
            string message = "";

            //没有许可
            if (licenseStatus == esriLicenseStatus.esriLicenseNotInitialized)
            {
                message = "You are not licensed to run this product!";
            }
            //许可正在使用
            else if (licenseStatus == esriLicenseStatus.esriLicenseUnavailable)
            {
                message = "There are insuffient licenses to run!";
            }
            //未知错误
            else if (licenseStatus == esriLicenseStatus.esriLicenseFailure)
            {
                message = "Unexpected license failure! Please contact your administrator.";
            }
            //已经初始化
            else if (licenseStatus == esriLicenseStatus.esriLicenseAlreadyInitialized)
            {
                message = "The license has already been initialized! Please check your implementation.";
            }
            return message;
        }

 

    }
}

 

来自:http://www.gissky.net/Article/545.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值