ds-blue-logo
Preview  |  SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
JRJ. R.07/05/2019

I am developing an external VB.NET add-on that needs to establish connection with Solidworks upon launch. Here is the code I'm using:

Sub ConnectToSolidworks()

Const PROG_ID As String = "SldWorks.Application"

Dim progType = System.Type.GetTypeFromProgID(PROG_ID)

If progType Is Nothing Then MSG("Cannot detect a valid Solidworks installation.") : End : Application.Exit()

'connect to Solidworks

Try

swApp = TryCast(System.Runtime.InteropServices.Marshal.GetActiveObject(PROG_ID), SolidWorks.Interop.sldworks.ISldWorks)

Catch ex As Exception

printException(System.Reflection.MethodBase.GetCurrentMethod().Name, ex)

End Try

'check if connected

If swApp Is Nothing Then

MSG("Unable to connect to Solidworks.")

End

Application.Exit()

End If

End Sub

Unfortunately, for whatever reason, the TryCast fails to assign anything to swApp, unless my application is run with Administrator privileges. Weird thing is, some people I sent my application to reported that they managed to get a connection without having to run it as Administrator, but most of them said it failed to connect. I do not want to have a run-as-administrator as a requirement to use my add-on.

I have tried, in the past, other methods of connecting to Solidworks (GetObject, CreateObject, Activator.CreateInstance, etc.), but they were plagued with problems, like creating invisible background instances of Solidworks, unreliable connections, etc. TryCast seems to be almost perfect, but for some reason, it doesn't work for everyone without Administrator privileges.

What is causing this problem, and how can I fix this?