ArcMap のエクステンション ダイアログのチェック状態を変更する方法

 2016/9/1 (木)    

//エクステンションのチェックを外す操作はIExtension::Shutdownイベント内では効果がない
 
 
//C#
//http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/inex.html#//0000000
 
IUID pUID = new UIDClass();
pUID.Value = "{3C5059FE-9F15-401A-94ED-EED914D73E3E}";  //Spatial Anayst
 
IExtensionConfig pExtensionConfig = (IExtensionConfig)ArcMap.Application.FindExtensionByCLSID((UID)pUID);;
 
if(pExtensionConfig != null)
{
    if(pExtensionConfig.State == esriExtensionState.esriESEnabled)
    {
        pExtensionConfig.State = esriExtensionState.esriESDisabled;
 
        MessageBox.Show("Spatial Analyst を無効にしました。");
    }
    else
    {
        MessageBox.Show("Spatial Analyst は有効ではありませんでした。");
    }
}
else
{
    MessageBox.Show("Spatial Analyst はインストールされていません。");
}
'http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//0042000000r8000000
Sub EnableExtension()
  Dim pUID As New UID
  pUID.Value = "{3C5059FE-9F15-401A-94ED-EED914D73E3E}"  'Spatial Analyst
  Dim pExtConfig As IExtensionConfig
  Set pExtConfig = Application.FindExtensionByCLSID(pUID)
 
  If Not pExtConfig Is Nothing Then
    If (Not pExtConfig.State = esriESUnavailable) Then
      pExtConfig.State = esriESEnabled  '有効
      pExtConfig.State = esriESDisabled '無効
    Else
      MsgBox "No licenses available"
    End If
  Else
    MsgBox "Extension is not installed"
  End If
End Sub

Copyright© WINGFIELD since1981 , 2018 All Rights Reserved.