Imports AAAA = Autodesk.AutoCAD.ApplicationServices.Application Imports AAD = Autodesk.AutoCAD.DatabaseServices Imports AAG = Autodesk.AutoCAD.Geometry Public Class Class1 _ Sub Test11() AAAA.DocumentManager.MdiActiveDocument.SendStringToExecute("_.DTEXT ", False, False, False) System.Windows.Forms.MessageBox.Show("Finished") End Sub _ Sub Test12() AAAA.DocumentManager.MdiActiveDocument.SendStringToExecute("_.DTEXT ", False, False, False) System.Windows.Forms.MessageBox.Show("Finished") End Sub _ Sub Test21() CommandLine.acedPostCommand("_.DTEXT ") System.Windows.Forms.MessageBox.Show("Finished") End Sub _ Sub Test22() CommandLine.acedPostCommand("_.DTEXT ") System.Windows.Forms.MessageBox.Show("Finished") End Sub _ Sub Test31() CommandLine.Command("_.DTEXT") System.Windows.Forms.MessageBox.Show("Finished") End Sub _ Sub Test32() CommandLine.Command("_.DTEXT") System.Windows.Forms.MessageBox.Show("Finished") End Sub End Class ''' ''' translated from c# to vb... http://www.caddzone.com/CommandLine.cs ''' ''' Public Class CommandLine Const ACAD_EXE As String = "acad.exe" Const ACDB_XX_DLL As String = "acdb17.dll" Const RTSTR As Short = 5005 Const RTNORM As Short = 5100 Const RTNONE As Short = 5000 Const RTREAL As Short = 5001 Const RT3DPOINT As Short = 5009 Const RTLONG As Short = 5010 Const RTSHORT As Short = 5003 Const RTENAME As Short = 5006 _ _ Public Shared Function acedCmd(ByVal resbuf As IntPtr) As Integer End Function _ Public Shared Function acedPostCommand(ByVal cmd As String) As Integer End Function Public Shared Function Command(ByVal ParamArray args As Object()) As Integer If AAAA.DocumentManager.IsApplicationContext Then Return 0 End If Dim res As Integer = 0 ' Using Dim buffer As AAD.ResultBuffer = New AAD.ResultBuffer Try For Each o As Object In args Dim code As Integer = 0 If TypeOf o Is String Then code = RTSTR ElseIf TypeOf o Is Int32 Then code = RTLONG ElseIf TypeOf o Is Int16 Then code = RTSHORT ElseIf TypeOf o Is Double Then code = RTREAL ElseIf TypeOf o Is AAG.Point3d Then code = RT3DPOINT ElseIf TypeOf o Is AAD.ObjectId Then code = RTENAME End If If Not (code = 0) Then buffer.Add(New AAD.TypedValue(code, o)) End If Next If buffer.AsArray.Length > 0 Then Dim cmdecho As Object = AAAA.GetSystemVariable("CMDECHO") AAAA.SetSystemVariable("CMDECHO", 0) res = acedCmd(buffer.UnmanagedObject) AAAA.SetSystemVariable("CMDECHO", cmdecho) End If Finally CType(buffer, IDisposable).Dispose() End Try Return res End Function End Class