Community
Inventor Programming - iLogic, Macros, AddIns & Apprentice
Inventor iLogic, Macros, AddIns & Apprentice Forum. Share your knowledge, ask questions, and explore popular Inventor topics related to programming, creating add-ins, macros, working with the API or creating iLogic tools.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Deactivate add-in with vba or vb.net

4 REPLIES 4
SOLVED
Reply
Message 1 of 5
GeorgK
1346 Views, 4 Replies

Deactivate add-in with vba or vb.net

Hello together,

 

how can I deactivate an add-in with vba or vb.net?

 

Thank you

 

Georg

4 REPLIES 4
Message 2 of 5
planglais75
in reply to: GeorgK

Hi Georg,

 

Here a VB.Net example with iLogic:

 

First, I create a module for the ItemByName extension (if you don't familiar with extension, read about it, it's a nice way of programming).

 

Public Module InventorExtensions
    <Extension()> _
    Function ItemByName(applicationAddIns As Inventor.ApplicationAddIns, displayName As String) As Inventor.ApplicationAddIn
        For Each i As Inventor.ApplicationAddIn In applicationAddIns
            If i.DisplayName = displayName Then
                Return i
            End If
        Next
        Return Nothing
    End Function
End Module

 

Next, add this to your method:

 

Dim inventorApplication as Inventor.Application = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application")
Dim iLogic as Inventor.ApplicationAddIn = InventorApplication.ApplicationAddIns.ItemByName("iLogic")
iLogic.Deactivate

 

 Give me feedback if it's what you need.

 

 

Pascal

Message 3 of 5
planglais75
in reply to: planglais75

I forgot this line of code:

 

   Imports InventorExtensions

 

Put this on the top of your document where your method is.

 

 

Pascal

Message 4 of 5
GeorgK
in reply to: planglais75

Hello Pascal,

 

thank you very much.

 

Georg

Message 5 of 5
jonbrabbs
in reply to: GeorgK

Hi Georg,

 

To turn off addins before invetor starts, you need to fettle with the registry entries. To do this, you need to create a new class and add the following code:

 

Imports Microsoft.Win32
Public Class RegistryEntry
    Public Sub ChangeRegistryKey(ByVal strMainKey As String, ByVal StrOn As String)
        'MessageBox.Show("CLSID\{" & strMainKey & "}\Settings", "")
        Dim Autoshell As RegistryKey = My.Computer.Registry.ClassesRoot.OpenSubKey("CLSID\{" & strMainKey & "}\Settings", True)
        If Autoshell Is Nothing Then
            'Registy key does not exit - do nothing
        Else
            Autoshell.SetValue("LoadOnStartUp", StrOn)
            Autoshell.Close()
        End If
    End Sub
End Class

 

Then you need to find the registry key you want to change - a simple search through the registry for the name of the addin will get this.

 

Then, add the following lines of code to your program before you start inventor:

 

Dim AssemblyBonusTools As New RegistryEntry

AssemblyBonusTools.ChangeRegistryKey("0BB5AE99-15A3-4B00-9731-210ED5A4E7B2", 0/1)

 

The 0/1 element is a string I believe, but don't quote me on this.

 

Don't forget to turn any addins back on again once you've finished.

 

Hope this is of some use to you.

 

Jon

 

///////////////////////////////////////////////////////////////////////////////////////////////////
If this post helps you, please give kudos.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report