Actualización
Después de investigar más de cerca el ejemplo de CODE 2 (al final de este post), se comprueba la extensión spatial analyst (sa), sin embargo no se refleja en la opción de menú Herramientas>Extensiones como marcada. Sin embargo, puede seguir utilizando las herramientas sa.
--------------Original question---------------
Me gustaría comprobar la extensión del analista espacial para ArcMap 9.3.1 a través de este código de ArcObjects, pero cuando ejecuto el código (CODE1) me aparecen estos dos mensajes y la extensión no se comprueba en el diálogo Herramientas>Extensiones.
"Su licencia ya ha sido inicializada, por favor compruebe su implementación"
Y
"La licencia de SpatialAnalyst ha sido comprobada para su uso"
No sé qué significa exactamente el primer cuadro de mensaje. Cualquier sugerencia sería muy apreciada.
También encontré este código (CODE2) para activar la extensión del analista espacial, pero tampoco funciona. ¿Tal vez me estoy perdiendo algo obvio con este? ¡Gracias!
CÓDIGO 1
Private Sub UIButtonControl6_Click()
Dim licenseStatus As esriLicenseStatus
licenseStatus = CheckOutLicense(esriLicenseProductCodeEngine)
If (licenseStatus = esriLicenseNotLicensed) Then
licenseStatus = CheckOutLicense(esriLicenseProductCodeArcView)
If (licenseStatus = esriLicenseNotLicensed) Then
licenseStatus = CheckOutLicense(esriLicenseProductCodeArcEditor)
If (licenseStatus = esriLicenseNotLicensed) Then
licenseStatus = CheckOutLicense(esriLicenseProductCodeArcInfo)
End If
End If
End If
'Take a look at the licenseStatus to see if it failed
'Not licensed
If (licenseStatus = esriLicenseNotLicensed) Then
MsgBox "You are not licensed to run this product"
'The licenses needed are currently in use
ElseIf (licenseStatus = esriLicenseUnavailable) Then
MsgBox "There are insufient licenses to run"
'The licenses unexpected license failure
ElseIf (licenseStatus = esriLicenseFailure) Then
MsgBox "Unexpected license failure please contact you administrator'"
'Already initialized (Initialization can only occur once)
ElseIf (licenseStatus = esriLicenseAlreadyInitialized) Then
MsgBox "You license has already been initialized please check you implementation"
'Everything was checkedout successfully
ElseIf (licenseStatus = esriLicenseCheckedOut) Then
MsgBox "Licenses checked out successfully"
End If
Dim bAlreadyCheckedOut As Boolean
bAlreadyCheckedOut = m_pAoInitialize.IsExtensionCheckedOut(esriLicenseExtensionCodeSpatialAnalyst)
If (Not bAlreadyCheckedOut) Then
licenseStatus = m_pAoInitialize.CheckOutExtension (esriLicenseExtensionCodeSpatialAnalyst)
If (licenseStatus = esriLicenseUnavailable) Then
MsgBox "All SpatialAnalyst licenses are currently in use"
ElseIf (licenseStatus = esriLicenseCheckedOut) Then
licenseStatus = esriLicenseCheckedOut
MsgBox "SpatialAnalyst license has been checked out for use"
Else
MsgBox "Unexpected licensing failure contact you administor"
End If
End If
End Sub
Private Function CheckOutLicense(productCode As esriLicenseProductCode) As esriLicenseStatus
Dim licenseStatus As esriLicenseStatus
Set m_pAoInitialize = New AoInitialize
CheckOutLicense = esriLicenseUnavailable
'Check the productCode
licenseStatus = m_pAoInitialize.IsProductCodeAvailable(productCode)
If (licenseStatus = esriLicenseAvailable) Then
'Check the extensionCode
licenseStatus = m_pAoInitialize.IsExtensionCodeAvailable(productCode, esriLicenseExtensionCodeSpatialAnalyst)
If (licenseStatus = esriLicenseAvailable) Then
'Initialize the license
licenseStatus = m_pAoInitialize.Initialize(productCode)
End If
End If
CheckOutLicense = licenseStatus
End Function
CÓDIGO 2
Dim gp As Object
gp = CreateObject("esriGeoprocessing.GPDispatch.1")
If gp.CheckExtension("spatial") = "NotLicensed" Then
MessageBox.Show("NotLicensed")
ElseIf gp.CheckExtension("spatial") = "Unavailable" Then
MessageBox.Show("Unavailable")
ElseIf gp.CheckExtension("spatial") = "NotInitialized" Then
MessageBox.Show("NotInitialized")
ElseIf gp.CheckExtension("spatial") = "Available" Then
gp.CheckOutExtension("spatial")
MessageBox.Show("Checkout")
End If