← Articoli

Come ottenere l’elenco dei programmi installati in Windows con Ruby

Se lavorate a un progetto che richiede informazioni sul software installato su una macchina Windows, può esservi utile sapere come recuperarle in modo programmatico con Ruby. Un modo per farlo è usare l’interfaccia Windows Management Instrumentation (WMI).

Attenzione: in questo modo si trovano solo i programmi installati con Windows Installer.
Per altri metodi vedete qui: “Please stop using win32product”

Una gem che offre un modo semplice per interagire con WMI è win32ole. Con win32ole potete collegarvi all’interfaccia WMI ed eseguire query per recuperare informazioni sui programmi installati su una macchina Windows.

Ecco un esempio di come usare win32ole per ottenere un elenco dei programmi installati, con nome, versione e produttore:

require 'win32ole'

wmi = WIN32OLE.connect("winmgmts://")
programs = wmi.ExecQuery("SELECT Name, Version, Vendor FROM Win32_Product")

programs.each do |program|
  puts "Name: #{program.Name}"
  puts "Version: #{program.Version}"
  puts "Vendor: #{program.Vendor}"
  puts ""
end

Questo codice si collega all’interfaccia WMI ed esegue una query per recuperare nome, versione e produttore di ogni programma installato.