There are several answered questions about how to get the Windows OS Product Key like Get windows details like product key, domain name, user name, etc., but I was wondering how to programmatically get the Product Key for a piece of installed software. Uninstall Registry Key is really nice as it has a lot of attributes tied to an installed program, but none of the attributes involve a Product Key so I was wondering if there's some other means via some C# library or some such to get the Product Key for an arbitrary piece of software and how to get it via C#.
There's no standard way that every program stores it's product key or licensing. For example, you can recover the Office product key from 2010 and prior, but with 2013, I do not believe it's possible. Many products have the activation details either encrypted in the registry or using a cloud-based solution (Office 365, Adobe CC). You can try to research the individual products you would like to target to get a better sense of how each program is handled.