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