Active Member
Posts: 7
Registered: ‎06-28-2011
Message 1 of 3 (161 Views)

how to list all profiles on machine

161 Views, 2 Replies
06-08-2012 08:43 AM

I need to list all the profiles on a given machine and add a new profile if its not in the list. Is this possible in c#?  Can anyone point me in the right direction as i cant find anything conclusive when i searched

*Expert Elite*
Posts: 9,574
Registered: ‎06-29-2007
Message 2 of 3 (156 Views)

Re: how to list all profiles on machine

06-08-2012 09:01 AM in reply to: ricobano



search in the registry, there you can find all AutoCAD versions installed plus all profiles in every from these installations (inlcuding vertical products based on AutoCAD).


The path to search is:


  • where xx.x is the release number
  • where yyyy:yyy stands for product + language



2012-06-08 17-56-57.png

- alfred -

Ingenieur Studio HOLLAUS ... www.hollaus.at
*Expert Elite*
Posts: 1,569
Registered: ‎10-08-2008
Message 3 of 3 (137 Views)

Re: how to list all profiles on machine

06-08-2012 02:15 PM in reply to: ricobano

Try to play around with this code

    Private Function GetAcadVer() As String
        Dim acadver As Object
            acadver = My.Computer.Registry.GetValue("HKEY_CLASSES_ROOT\AutoCAD.Application\CurVer", _
                                                  String.Empty, String.Empty)
            If TypeOf acadver Is String Then
                Return acadver.ToString()
                Return Nothing
            End If
            Return Nothing
        End Try
    End Function

   Private Function GetAcadKind() As String

        Dim appver As Object
        Dim acadkind As Object
            appver = TryCast(My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD", "CurVer", Nothing), Object)
            If appver IsNot Nothing Then
                acadkind = TryCast(My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD" + "\" + appver, "CurVer", Nothing), Object)
                Return "HKEY_CURRENT_USER\Software\Autodesk\AutoCAD" + "\" + appver.ToString() + "\" + acadkind.ToString()
                Return Nothing
            End If
            Return Nothing
        End Try
    End Function

    Public Sub TestProfiles()
        Dim profiles As Object
        profiles = My.Computer.Registry.GetValue(GetAcadKind() + "\Profiles", _
        String.Empty, String.Empty)

        If TypeOf profiles Is String Then
            MessageBox.Show("String profiles: " & profiles.ToString())
        ElseIf TypeOf profiles Is Integer Then
            MessageBox.Show("Integer profiles: " & CInt(profiles))
        ElseIf TypeOf profiles Is String() Then
            MessageBox.Show("String array: ")
            Dim dataArray() As String = DirectCast(profiles, String())
            For ctr As Integer = LBound(dataArray, 1) To UBound(dataArray, 1)
                MessageBox.Show(" " & dataArray(ctr))
        ElseIf TypeOf profiles Is Byte() Then
            MessageBox.Show("Binary profiles: ")
            Dim byteArray() As Byte = DirectCast(profiles, Byte())
            For ctr As Integer = LBound(byteArray, 1) To UBound(byteArray, 1)
                MessageBox.Show(" " & Hex(byteArray(ctr)) & " ")
            MessageBox.Show("Unknown Profiles type...")
        End If
    End Sub



Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Do you have 60 seconds to spare? The Autodesk Community Team is revamping our site ranking system and we want your feedback! Please click here to launch the 5 question survey. As always your input is greatly appreciated.