Rubyを使ってWindowsでデフォルトプリンタの名前を取得する方法。Win32OLEはWSHのスクリプトを1:1で書き換えたら動くのが素晴らしい。
require 'win32ole' class Printer def self.defaultPrinter locator = WIN32OLE.new("WbemScripting.SWbemLocator") service = locator.connectServer printers = service.execQuery("select * from Win32_Printer") default_printer = nil printers.each do |prn| default_printer = prn.caption if prn.default end default_printer end end