I don't think there is such concept as "disabled application". The application can be installed and uninstalled.
If you really want, you can block the access to the application by setting file permissions, say, for the directory where the application is installed.
The code functionality is explained in this CodeProject article, how to get the list of installed application, with all essential attributes of each such application:
Get List of Installed Applications of System in C#[
^].
However, I doubt you can solve the problem smoothly. First of all, there is no a reliable method of finding all .lnk files which could be placed on different place of menu, desktop, stack bar (remember, these containers are different for different users) and just in file system, unless you scan all disks on the system. This is because anyone is free to copy any .lnk file or create a new one at any moment. And even if you do it once, any user may add a new .lnk when you re-enable the application, so, if you create and maintain a kind of registry of existing .lnk file, it would be practically useless, because a user can delete or add any of them at any time when the access to the file is available. And, for a final user, the access to the application is mostly done via a .lnk file. If you prohibit access to the application file(s), the .lnk file pointing to the application becomes invalid, which would be confusing to the user.
Besides, there are many applications which don't have installation at all. (To me, they make a lot of sense; and this approach is the best in many cases.)
Anyway, you can implement such application based on permission. To work with file permissions, please see:
https://msdn.microsoft.com/en-us/library/system.security.permissions%28v=vs.110%29.aspx[
^],
see also
https://msdn.microsoft.com/en-us/library/bb727008.aspx[
^].
Now you have everything to develop the application which administer access control to the installed application and supports the set of enabled and disabled applications.
Maybe, I wrong here, because I am not well aware of your goals, but I doubt that such application is really needed. The user knows better what to use and what not. Is it a corporate "culture" (all right, policy) where non-qualified and doing standard routine operations associates needs to be in handcuffs? Just provide standard system setup with fixed set of application and give different categories of workers different permission, by creating specialized user groups.
—SA