http://www.perlmonks.org?node_id=497218

sanPerl has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks,
I want to develop a program which would scan a PC and tell what Softwares are installed on the said PC. In Windows the ‘Add/Remove Programs’ options shows you list of Installed Softwares, I would like perl script to detect those softwares. Once I get the software names then I can put them in whatever format I want.

I would appreciate all kinds of suggestions/hints/clues/guidance regarding this requirement.
Thanks & Regards, Sandeep Deshpande

Replies are listed 'Best First'.
Re: Detecting Installed Softwares on PC
by puploki (Hermit) on Oct 04, 2005 at 12:26 UTC
      Dear Monks, Thanks a lot for the suggestions. It seems that my problem would solve, if I try all these methods Sandeep
Re: Detecting Installed Softwares on PC
by gargle (Chaplain) on Oct 04, 2005 at 12:06 UTC
Re: Detecting Installed Softwares on PC
by castaway (Parson) on Oct 04, 2005 at 12:11 UTC
    Assuming your script is running on the machine you want to check, try using the Win32::Registry modules, and looking in HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Uninstall ?

    C.

Re: Detecting Installed Softwares on PC
by steelrose (Scribe) on Oct 04, 2005 at 12:18 UTC
    A commerical off-the-shelf product I used at a previous job searched the entire hard drive for all .exe files, and then compared their names, sizes, (and to a lesser degree - paths), to a database of known products.

    Of course, you could get around that by renaming the file in most cases. But it was highly effective for that company.

    If you give a man a fish he will eat for a day.
    If you teach a man to fish he will buy an ugly hat.
    If you talk about fish to a starving man, you're a consultant.