/// <summary> /// 初始化许可 /// </summary> /// <returns></returns> public bool CheckLicenses() { if (m_AoInitialize == null) { MessageBox.Show("不能初始化", "ArcGIS Engine许可错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } esriLicenseStatus licenseStatus = (esriLicenseStatus)m_AoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { licenseStatus = (esriLicenseStatus)m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB); if (licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized) { if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut) { MessageBox.Show("初始化失败,应用程序不能运行!", "ArcGIS Engine许可错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } else { MessageBox.Show("程序运行期间重复初始化!"); } } else { MessageBox.Show("初始化失败,应用程序不能运行!", "ArcGIS Engine许可错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } return(true); }
public void InitializeApplication(esriLicenseProductCode[] products,esriLicenseExtensionCode [] extensions) { // Binding a product RuntimeManager.Bind(ProductCode.EngineOrDesktop); // Initialize a product code m_AoInit = new AoInitializeClass(); esriLicenseProductCode currentProduct = new esriLicenseProductCode(); foreach (esriLicenseProductCode prod in products) { esriLicenseStatus prodStatus = m_AoInit.IsProductCodeAvailable(prod); if(prodStatus==esriLicenseStatus.esriLicenseAvailable) { prodStatus=m_AoInit.Initialize(prod); if(prodStatus==esriLicenseStatus.esriLicenseAlreadyInitialized||prodStatus==esriLicenseStatus.esriLicenseCheckedOut) { currentProduct = prod; } } } if(m_AoInit.InitializedProduct()!=null) { foreach (esriLicenseExtensionCode ext in extensions) { m_RequetedExtensionCodes.Add(ext); esriLicenseStatus extStatus = m_AoInit.IsExtensionCodeAvailable(currentProduct,ext); if (extStatus == esriLicenseStatus.esriLicenseAvailable) m_AoInit.CheckOutExtension(ext); } } }
private esriLicenseStatus CheckOutLicenses() { esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseNotInitialized; //Determine if the product is available for (int i = 0; i < m_productsCode.Length; i++) { esriLicenseProductCode pc = m_productsCode[i]; licenseStatus = m_AoInitialize.IsProductCodeAvailable(pc); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { licenseStatus = m_AoInitialize.Initialize(pc); if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut) { m_initProduct = pc; break; } } } if (m_pExtensionsCode != null) { //Checkout the extensions - only when product is initialized if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut) { System.Collections.ArrayList initExts = new System.Collections.ArrayList(m_pExtensionsCode.Length); foreach (esriLicenseExtensionCode extLicense in m_pExtensionsCode) { //Determine if the extensions are available - some may not be available depending on the product initialized //If so, initialization fails... licenseStatus = m_AoInitialize.IsExtensionCodeAvailable(m_initProduct, extLicense); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { licenseStatus = m_AoInitialize.CheckOutExtension(extLicense); if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut && licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized) { break; } //Add to license initialized list initExts.Add(extLicense); } else { break; //Exit when failed to check out any extension } } if (initExts.Count > 0) { m_initExts = new esriLicenseExtensionCode[initExts.Count]; m_initExts = (esriLicenseExtensionCode[])initExts.ToArray(typeof(esriLicenseExtensionCode)); } } } return(licenseStatus); }
private bool Initialize() { if (m_requestedProducts == null || m_requestedProducts.Count == 0) { return(false); } esriLicenseProductCode currentProduct = new esriLicenseProductCode(); bool productInitialized = false; //Try to initialize a product ILicenseInformation licInfo = (ILicenseInformation)m_AoInit; m_requestedProducts.Sort(); if (!InitializeLowerProductFirst) //Request license from highest to lowest { m_requestedProducts.Reverse(); } foreach (int prodNumber in m_requestedProducts) { esriLicenseProductCode prod = (esriLicenseProductCode)Enum.ToObject(typeof(esriLicenseProductCode), prodNumber); esriLicenseStatus status = m_AoInit.IsProductCodeAvailable(prod); if (status == esriLicenseStatus.esriLicenseAvailable) { status = m_AoInit.Initialize(prod); if (status == esriLicenseStatus.esriLicenseAlreadyInitialized || status == esriLicenseStatus.esriLicenseCheckedOut) { productInitialized = true; currentProduct = m_AoInit.InitializedProduct(); } } m_productStatus.Add(prod, status); if (productInitialized) { break; } } m_hasInitializeProduct = productInitialized; m_requestedProducts.Clear(); //No product is initialized after trying all requested licenses, quit if (!productInitialized) { return(false); } //Check out extension licenses return(CheckOutLicenses(currentProduct)); }
private esriLicenseStatus CheckOutLicenses(esriLicenseProductCode productCode) { esriLicenseStatus licenseStatus; //是否产品是可能的 licenseStatus = m_AoInitialize.IsProductCodeAvailable(productCode); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { //用相应的许可文件进行初始化 licenseStatus = m_AoInitialize.Initialize(productCode); } return(licenseStatus); }
private static esriLicenseStatus CheckOutLicenses(esriLicenseProductCode esriLicenseProductCode_0, esriLicenseExtensionCode esriLicenseExtensionCode_0) { if (m_pAoInitialize == null) { // m_pAoInitialize = new AoInitializeClass(); } esriLicenseStatus status = m_pAoInitialize.IsProductCodeAvailable(esriLicenseProductCode_0); if (status == esriLicenseStatus.esriLicenseAvailable) { status = m_pAoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode_0, esriLicenseExtensionCode_0); if (status == esriLicenseStatus.esriLicenseAvailable) { status = m_pAoInitialize.Initialize(esriLicenseProductCode_0); if (status == esriLicenseStatus.esriLicenseCheckedOut) { status = m_pAoInitialize.CheckOutExtension(esriLicenseExtensionCode_0); } } } return(status); }
private bool InitializeProduct(esriLicenseProductCode productCode) { esriLicenseStatus status = m_pAoInit.IsProductCodeAvailable(productCode); if (status == esriLicenseStatus.esriLicenseAvailable) { status = m_pAoInit.Initialize(productCode); if (status == esriLicenseStatus.esriLicenseCheckedOut || status == esriLicenseStatus.esriLicenseAlreadyInitialized) { return(true); } } return(false); }
//签出产品许可 private bool CheckOutLicenseMain(esriLicenseProductCode code) { try { if (m_AoInitializeClass.IsProductCodeAvailable(code) == esriLicenseStatus.esriLicenseAvailable) { if (m_AoInitializeClass.Initialize(code) == esriLicenseStatus.esriLicenseCheckedOut) { m_AoInitializeClass.InitializedProduct(); return(true); } } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); } return(false); }
/// <summary> /// Attempts to checkout a license for the specified ESRI product and returns true if successful. /// </summary> public bool GetArcGISLicense(esriLicenseProductCode prodCode) { //Create a new AoInitialize object try { _AoInitialize = new AoInitializeClass(); }//The initialization object catch { _log.Warn("Warning: Unable to initialize Arc Objects. License cannot be checked out."); return false; } if (_AoInitialize == null) { _log.Warn("Warning: Unable to initialize Arc Objects. License cannot be checked out."); return false; } //Determine if the product is available esriLicenseStatus licenseStatus = (esriLicenseStatus)_AoInitialize.IsProductCodeAvailable(prodCode); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { licenseStatus = (esriLicenseStatus)_AoInitialize.Initialize(prodCode); if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut) { _log.Warn("Warning: The license checkout for " + prodCode.ToString() + " failed!"); return false; } } else { _log.Warn("Warning: The ArcGIS product " + prodCode.ToString() + " is unavailable!"); return false; } return true; }
public static bool StartUp() { try { if (aoinitialize == null) { Console.WriteLine("没有安装ARCEngine,系统无法进行"); return(false); } ESRI.ArcGIS.esriSystem.esriLicenseStatus licensesStatus = (ESRI.ArcGIS.esriSystem.esriLicenseStatus)aoinitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB); if (licensesStatus == esriLicenseStatus.esriLicenseAvailable) { licensesStatus = (esriLicenseStatus)aoinitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB); if (licensesStatus != esriLicenseStatus.esriLicenseCheckedOut) { Console.WriteLine("没有ARCEngine中的GDBEdit许可!"); return(false); } } else { Console.WriteLine("没有ARCEngine中的GDBEdit许可!"); return(false); } licensesStatus = aoinitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine, esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork); licensesStatus = (ESRI.ArcGIS.esriSystem.esriLicenseStatus)aoinitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork); if (licensesStatus == esriLicenseStatus.esriLicenseCheckedOut) { } else { Console.WriteLine("没有ARCEngine中的NetWork许可!"); return(false); } } catch (Exception ex) { Console.WriteLine("ArcEngine的许可错误" + ex.Message); return(false); } return(true); }
private esriLicenseStatus CheckOutLicenses() { var licenseStatus = esriLicenseStatus.esriLicenseNotInitialized; //Determine if the product is available foreach (esriLicenseProductCode productCode in _productsCodes) { licenseStatus = _aoInitialize.IsProductCodeAvailable(productCode); if (licenseStatus != esriLicenseStatus.esriLicenseAvailable) { continue; } // NOTE: in case the license expires in less than 15 days and the registry key // HKEY_LOCAL_MACHINE\Software\ESRI\License does not have a string value // with the name TIMEOUTWARNING and the value FALSE // a message box will pop up here. This is a problem if running as scheduled // task - make sure this value exists and is set to false on all servers! _msg.DebugFormat("Initializing license: {0}", productCode); licenseStatus = _aoInitialize.Initialize(productCode); if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut) { _initProduct = productCode; break; } } if (_extensionsCodes != null) { //Checkout the extensions - only when product is initialized if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut) { var checkedOutExtensions = new List <esriLicenseExtensionCode>(_extensionsCodes.Length); foreach (esriLicenseExtensionCode extLicense in _extensionsCodes) { //Determine if the extensions are available - some may not be available depending on the product initialized //If so, initialization fails... licenseStatus = _aoInitialize.IsExtensionCodeAvailable(_initProduct, extLicense); if (licenseStatus == esriLicenseStatus.esriLicenseAvailable) { _msg.DebugFormat("Checking out extension: {0}", extLicense); licenseStatus = _aoInitialize.CheckOutExtension(extLicense); if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut && licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized) { break; } //Add to license initialized list checkedOutExtensions.Add(extLicense); } else { break; //Exit when failed to check out any extension } } if (checkedOutExtensions.Count > 0) { _initializedExtensions = checkedOutExtensions.ToList(); } } } return(licenseStatus); }
private bool Initialize() { //Version 10 check //if (RuntimeManager.ActiveRuntime == null) // return false; if (m_requestedProducts == null || m_requestedProducts.Count == 0) return false; bool productInitialized = false; m_requestedProducts.Sort(); if (!InitializeLowerProductFirst) //Request license from highest to lowest m_requestedProducts.Reverse(); m_AoInit = new AoInitializeClass(); esriLicenseProductCode currentProduct = new esriLicenseProductCode(); //version 9.3 check //Try to initialize a product ILicenseInformation licInfo = (ILicenseInformation)m_AoInit; // licInfo is not used?? foreach (int prodNumber in m_requestedProducts) { esriLicenseProductCode prod = (esriLicenseProductCode)Enum.ToObject(typeof(esriLicenseProductCode), prodNumber); esriLicenseStatus status = m_AoInit.IsProductCodeAvailable(prod); if (status == esriLicenseStatus.esriLicenseAvailable) { status = m_AoInit.Initialize(prod); if (status == esriLicenseStatus.esriLicenseAlreadyInitialized || status == esriLicenseStatus.esriLicenseCheckedOut) { productInitialized = true; currentProduct = m_AoInit.InitializedProduct(); } } m_productStatus.Add(prod, status); if (productInitialized) break; } m_hasInitializeProduct = productInitialized; m_requestedProducts.Clear(); //No product is initialized after trying all requested licenses, quit if (!productInitialized) { return false; } //Check out extension licenses return CheckOutLicenses(currentProduct); }