Imports System
Imports Microsoft
Imports SolidWorks.Interop
Imports SolidWorks

Public Class Form1

    'Subs und Functions zum Verbinden mit SolidWorks
    Public swApp As SldWorks.SldWorks
    Public swDrw As SldWorks.DrawingDoc
    Public swView As SldWorks.View
    Public swPart As SldWorks.ModelDoc2
    Public swModelExt As SldWorks.ModelDocExtension

    Public FormTitel As String = "irgendwas"


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not ConnectToSW(swApp) Then End
        MessageBox.Show("SWX läuft!", "TEST", MessageBoxButtons.OK)
        End
    End Sub

    Function ConnectToSW( _
         ByRef oSwApp As SldWorks.SldWorks) As Boolean
        Try
            'Messagebox Rückgabe
            Dim lDialogStatus As Windows.Forms.DialogResult
            Try
                'SolidWorks Objekt belegen
                oSwApp = CType(GetObject(, _
                        "SldWorks.Application"),  _
                        sldworks.SldWorks)
            Catch ex As Exception
                'Fehler beim Belegen des SolidWorks Objekts
                'Evtl. ist SolidWorks nicht geöffnet
            End Try
            'Wenn das SolidWorks Objekt nicht belegt ist...
            If oSwApp Is Nothing Then
                '... in einer MessageBox nachfragen

                lDialogStatus = MessageBox.Show("Kein Solidworks aktiv!", _
                   FormTitel, MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)

                'Rückgabewert prüfen
                Select Case lDialogStatus
                    Case Windows.Forms.DialogResult.OK
                        'User hat SolidWorks geöffnet
                        'Funktion einfach nochmal aufrufen
                        Return ConnectToSW(oSwApp)
                    Case Windows.Forms.DialogResult.Cancel
                        'User möchte die Anwendung abbrechen
                        Return False
                End Select
                'SolidWorks anzeigen
                oSwApp.Visible = True
                oSwApp.UserControlBackground = True
            End If
            Return True
        Catch ex As Exception
            Debug.Assert(False)
            Trace.WriteLine("Fehler: Wo: " & _
                    ex.StackTrace & " Was: " & ex.Message)
            Return False
        End Try
    End Function

End Class
