For almost every application that has a serial number, you are going to need to open up a dialogue with the vendor of that application, and work with them to determine how to get the serial number of that installed application. here's why. 99.999% of the time... Vendors don't put the serial number anywhere that is legible.
What may happen is they change 1 bit within a long binary reg key from 0 to 1. or they change 1 obscure WMI entry, or they change 1 file in the installed directory from being 801kbytes to 803kbytes, and their software knows that the difference of 2 means it is licensed.
There's no way for most applications to even tell you what the license key is... just that it was installed with a valid license. So, contact each vendor, and see what your options are.
That said... here's something for autocad.
For a project, I got the mof edits for CM07, and they worked, but wow, they created tables and views for every minor release (26 tables and views! yipes!)
You'd take the attached and either drop it into a DCM (just like you would for LocalGroupMembers DCM), or ship it out as a vbscripted recurring advertisement. You could target that DCM or advert just to a collection w/Autocad listed in ARP, or even to all workstations/servers. Only boxes w/the regkeys should create the custom namespace locally. Theoretically, you'd end up with just 1 table and view, for all of the autodesk products (as listed in the script, their 'parent' regkey). if/when version "R19" comes out, you'd have to add another str1 variable, and increment everything where the script enumerates through from 25 to 26, but it would still be cleaner than the multiple edits that are currently necessary.
And here's the mof edit, for sms_def.mof only, should end up with v_gs_autodeskcombo0 for a view:
//----------------
//Mof edit for Autodesk products,
//Note, must be used with a DCM recurring CI, or a recurring Advert script
//----------------
[ SMS_Report (TRUE),
SMS_Group_Name ("AutoDeskCombo"),
SMS_Class_ID ("Custom|AutoDesk|1.0") ]
class cm_AutoDesk : SMS_Class_Template
{
[SMS_Report (TRUE),key] string KeyName;
[SMS_Report (TRUE) ] string ProductName;
[SMS_Report (TRUE) ] string Rel;
[SMS_Report (TRUE) ] string SerialNumber;
[SMS_Report (TRUE) ] uint32 StandaloneNetworkType;
};