Récupérer le nom du dessin AutoCAD actif en .NET

Voici un petit exemple de code qui permet de détecter si AutoCAD est en cours d'exécution. Si c'est le cas, il affiche le chemin complet du dessin ouvert.

Le code utilise COM (out of process).

VB.NET

Imports System.Runtime.InteropServices

Module Module1

    Sub Main()
        Try
            Dim acad = Marshal.GetActiveObject("AutoCAD.Application")
            Dim activeDocument = acad.ActiveDocument
            MsgBox("Le chemin complet du document actif est : " & activeDocument.FullName)
        Catch ex As COMException
            Const MK_E_UNAVAILABLE As Integer = &H800401E3
            If ex.ErrorCode = MK_E_UNAVAILABLE Then
                MsgBox("AutoCAD n'est pas en cours d'exécution.")
            Else
                Throw
            End If
        End Try
    End Sub

End Module

C#

try {
    dynamic acad = Marshal.GetActiveObject("AutoCAD.Application");
    dynamic activeDocument = acad.ActiveDocument;
    MessageBox.Show("Le document actif est : " + activeDocument.FullName);
} catch (COMException ex) {
    const uint MK_E_UNAVAILABLE = 0x800401e3;
    if ((uint)ex.ErrorCode == MK_E_UNAVAILABLE) {
        MessageBox.Show("AutoCAD n'est pas en cours d'exécution.");
    } else {
        throw;
    }
}

Add new comment